Dataset Operation
获取授权配置列表
获取授权配置的列表
请求路径
GET /v1/auth-storage-configs
请求参数
Query
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
name | string | 否 | 配置名 |
limit | int | 否 | 需大于0,默认128,单次最多获取128 |
offset | int | 否 | 默认0 |
请求示例
curl --location --request GET '{service}/v1/auth-storage-configs?name=aws_1&limit=1&offset=0' \
--header 'x-token: {your_accesskey}'
返回结果
# 响应状态
HttpStatus 200
# 响应结果
{
"configs": [
{
"name": "aws_1",
"type": "s3",
"endpoint": "s3.cn-northwest-1.amazonaws.com.cn",
"accesskeyId": "AKIKU7KYZCWGOTEV5GNE",
"bucketName": "graviti-210415"
}
],
"offset": 0,
"recordSize": 1,
"totalCount": 1
}
获取配置列表
请求路径
GET /v1/storage-configs
请求参数
Query
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
name | string | 否 | 配置名 |
limit | int | 否 | 需大于0,默认128,单次最多获取128 |
offset | int | 否 | 默认0 |
请求示例
curl --location --request GET '{service}/v1/storage-configs?limit=1&offset=0' \
--header 'x-token: {your_accesskey}'
返回结果
# 响应状态
HttpStatus 200
# 响应结果
{
"configs":[
{
"name":"AliCloud-oss-cn-shanghai",
"filePath":"",
"type":"oss",
"isGravitiStorage":true
}
],
"offset":0,
"recordSize":1,
"totalCount":1
}
创建OSS存储配置
请求路径
POST /v1/storage-configs/oss
请求参数
Body
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
name | string | 是 | 配置名称 |
filePath | string | 是 | 文件存储路径 |
accesskeyId | string | 是 | accesskey id |
accesskeySecret | string | 是 | accesskey secret |
endpoint | string | 是 | Oss 的节点 |
bucketName | string | 是 | oss 的 bucket 名 |
请求示例
curl --location --request POST '{service}/v1/storage-configs/oss' \
--header 'x-token: {your_accesskey}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "configName",
"filePath": "car",
"accesskeyId": "AFIAU57BYHCWGOTEAV9GNE",
"accesskeySecret": "secret",
"endpoint": "oss-sn-hangzhou.aliyuncs.com",
"bucketName": "testBucket"
}'
返回结果
# 响应状态
HttpStatus 200
# 响应结果
{}
创建S3存储配置
请求路径
POST /v1/storage-configs/s3
请求参数
Body
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
name | string | 是 | 配置名称 |
filePath | string | 是 | 文件存储路径 |
accesskeyId | string | 是 | accesskey id |
accesskeySecret | string | 是 | accesskey secret |
endpoint | string | 是 | S3 的节点 |
bucketName | string | 是 | S3 的 bucket 名 |
请求示例
curl --location --request POST '{service}/v1/storage-configs/s3' \
--header 'x-token: {your_accesskey}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "configName",
"filePath": "car",
"accesskeyId": "AFIAU57BYHCWGOTEAV9GNE",
"accesskeySecret": "secret",
"endpoint": "s3-sn-hangzhou.aliyuncs.com",
"bucketName": "testBucket"
}'
返回结果
# 响应状态
HttpStatus 200
# 响应结果
{}
创建Azure存储配置
请求路径
POST /v1/storage-configs/azure
请求参数
Body
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
name | string | 是 | 配置名称 |
filePath | string | 是 | 文件存储路径 |
accesskeyId | string | 是 | Azure 的 account name |
accesskeySecret | string | 是 | azure 的 account key |
containerName | string | 是 | Azure 的 container 名 |
accountType | string | 是 | Azure 的 accountType |
请求示例
curl --location --request POST '{service}/v1/storage-configs/azure' \
--header 'x-token: {your_accesskey}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "configName",
"filePath": "car",
"accesskeyId": "AFIAU57BYHCWGOTEAV9GNE",
"accesskeySecret": "secret",
"containerName": "test_container",
"accountType": "Azure_china"
}'
返回结果
# 响应状态
HttpStatus 200
# 响应结果
{}
创建本地文件系统存储配置
请求路径
POST /v1/storage-configs/local
请求参数
Body
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
name | string | 是 | 配置名称 |
filePath | string | 是 | 文件存储路径 |
endpoint | string | 是 | 存储节点 |
请求示例
curl --location --request POST '{service}/v1/storage-configs/local' \
--header 'x-token: {your_accesskey}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "configName",
"filePath": "car",
"endpoint": "192.168.1.1:8888"
}'
返回结果
# 响应状态
HttpStatus 200
# 响应结果
{}
删除storage config
DELETE /v1/storage-configs/{name}
Path
名称 | 是否必须 | 描述 |
---|---|---|
name | 是 | config 名 |
请求示例
curl --location --request DELETE '{service}/v1/storage-configs/configName' \
--header 'x-token: {your_accesskey}'
返回结果
# 响应状态
HttpStatus 200
# 响应结果
{}
创建数据集
创建tensorbay数据集,默认支持版本管理,数据集名称不可重复
请求路径
POST /v1/datasets
请求参数
Body
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
name | string | 是 | 数据集名字 |
alias | string | 否 | 数据集别名 |
type | int | 否 | 默认是0,0-普通数据集,1-融合数据集 |
configName | string | 否 | 云配置名,根据对应配置创建数据集 |
isPublic | bool | 否 | 数据集是否公开, 默认不公开 |
请求示例
curl --location --request POST '{service}/v1/datasets' \
--header 'x-token: {your_accesskey}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "my first dataset",
"alias": "dataset alias",
"type": 0,
"configName": "example config name",
"isPublic": true
}'
返回结果
# 响应状态
HttpStatus 201
# 响应结果
{
"id": "154e35bae8954f09969ef8c9445efd2c"
}
- id: 创建的data set的ID
删除dataset
DELETE /v1/datasets/{id}
Path
名称 | 是否必须 | 描述 |
---|---|---|
id | 是 | 数据集ID |
请求示例
curl --location --request DELETE '{service}/v1/datasets/154e35bae8954f09969ef8c9445efd2c' \
--header 'x-token: {your_accesskey}'
返回结果
# 响应状态
HttpStatus 200
# 响应结果
{}
更新dataset信息
PATCH /v1/datasets/{id}
Path
名称 | 是否必须 | 描述 |
---|---|---|
id | 是 | 数据集ID |
Body
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
name | string | 否 | dataset 名称, 如果传值不可为“”空值 |
alias | string | 否 | 数据集别名 |
isPublic | bool | 否 | 数据集是否公开,true 对应公开, false 对应私有 |
defaultBranch | string | 否 | 数据集默认分支名 |
请求示例
curl --location --request PATCH '{service}/v1/datasets/154e35bae8954f09969ef8c9445efd2c' \
--header 'x-token: {your_accesskey}'\
--header 'Content-Type: application/json' \
--data-raw '{
"name": "my dataset",
"alias": "datasetAlias",
"isPublic": false,
"defaultBranch": "main"
}'
返回结果
# 响应状态
HttpStatus 200
# 响应结果
{}
获取数据集列表
返回用户拥有的数据集列表:
- 个人用户获取个人账户下的数据集列表
- 团队用户获取所在企业下的数据集
请求路径
GET /v1/datasets
请求参数
Query
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
limit | int | 否 | 需大于0,默认128,单次最多获取128 |
offset | int | 否 | 默认0 |
name | string | 否 | 数据集名称 |
needFuzzyQuery | bool | 否 | 默认false 若为true,则支持数据集名称模糊搜索 |
needTeamDataset | bool | 否 | 默认false,当用户为团队用户且该值为true,则返回整个团队的数据集 |
sortBy | string | 否 | 排序的字段,默认updated_at(更新时间), 目前支持created_at( 创建时间)和updated_at,传入其他内容会返回InvalidParamsValue |
orderBy | string | 否 | 默认desc(倒序),合法内容为asc(顺序)和desc |
请求示例
curl --location --request GET '{service}/v1/datasets?offset=0&limit=10'\
--header 'x-token: {your_accesskey}'
返回结果
# 响应状态
HttpStatus 200
# 响应结果
{
"datasets": [
{
"id": "154e35bae8954f09969ef8c9445efd2c",
"name": "my-great-data-set",
"alias": "dataset alias",
"defaultBranch": "main",
"type": 0,
"updateTime": 1604977282,
"owner": "",
"commitId": "00000000000000000000000000000000",
"coverUrl": "https://example.com/image.jpg",
"dataSize": 100,
"dataCount": 10,
"tabs": {
"labelType": [{
"id":"06181d4e05484c1fa011f585a9e255cf",
"name":"BOX2D"
}
]
}
}
],
"offset": 0,
"recordSize": 1,
"totalCount": 1
}
- datasets: 数据集列表
- id: 数据集id
- name: 数据集名称
- alias: 数据集别名
- defaultBranch: 默认分支名
- type: 数据集类型,0-普通数据集,1-融合数据集
- owner: 数据集所有者
- commitId: 该数据集最新的提交 ID
- coverUrl: 封面路径
- dataCount: 默认分支上最新提交的数据数量
- dataSize: 默认分支上最新提交的数据大小
- updateTime: 时间戳,更新时间
- tabs: 标签字典,键为类型,值为标签数组
请求路径
GET /v1/datasets/{id}
请求参数
PATH
名称 | 是否必须 | 描述 |
---|---|---|
id | 是 | dataset id |
请求示例
curl --location --request GET '{service}/v1/datasets/154e35bae8954f09969ef8c9445efd2c'\
--header 'x-token: {your_accesskey}'
返回结果
# 响应状态
HttpStatus 200
# 响应结果
{
"name": "my-great-data-set",
"alias": "dataset alias",
"coverUrl": "https://example.com/image.jpg",
"type": 1,
"defaultBranch": "main",
"commitId": "00000000000000000000000000000000",
"updateTime": 1604977282,
"owner": "",
"isPublic": false,
"configName": "exampleConfigName"
}
创建branch
创建数据集新branch
请求路径
POST /v1/datasets/{id}/branches
请求参数 Path
名称 | 是否必须 | 描述 |
---|---|---|
id | 是 | 数据集ID |
Body
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
name | string | 是 | 创建的branch名称 |
commit | string | 是 | 从哪个commit切出branch, commit 可为 commit id, commit tag 或者 branch name |
请求示例
curl --location --request POST '{service}/v1/datasets/154e35bae8954f09969ef8c9445efd2c/branches' \
--header 'x-token: {your_accesskey}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": main2,
"commit": "fde63f357daf46088639e9f57fd81cad"
}'
返回结果
# 响应状态
HttpStatus 201
# 响应结果
{}
删除branch
删除数据集branch
请求路径
DELETE /v1/datasets/{id}/branches
请求参数 Path
名称 | 是否必须 | 描述 |
---|---|---|
id | 是 | 数据集ID |
Body
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
name | string | 是 | branch名称 |
请求示例
curl --location --request DELETE '{service}/v1/datasets/154e35bae8954f09969ef8c9445efd2c/branches' \
--header 'x-token: {your_accesskey}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": main2
}'
返回结果
# 响应状态
HttpStatus 200
# 响应结果
{}
获取branch列表
获取数据集的branch列表
请求路径
GET /v1/datasets/{id}/branches
请求参数 Path
名称 | 是否必须 | 描述 |
---|---|---|
id | 是 | 数据集ID |
Query
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
limit | int | 否 | 需大于0,默认128,单次最多获取128 |
offset | int | 否 | 默认0 |
name | string | 否 | 分支名 |
请求示例
curl --location --request GET '{service}/v1/datasets/154e35bae8954f09969ef8c9445efd2c/branches?limit=1&offset=0' \
--header 'x-token: {your_accesskey}'
返回结果
# 响应状态
HttpStatus 200
# 响应结果
{
"branches": [
{
"name": "main",
"commitId": "fde63f357daf46088639e9f57fd81cad",
"parentCommitId": "f68b1375454f459b8a486b8d1f4d9ddb",
"title": "first commit",
"description": "desc",
"committer": {
"name": "graviti",
"date": 1616579313
}
}
],
"offset": 0,
"recordSize": 1,
"totalCount": 1
}
创建数据集草稿
创建tensorbay数据集草稿, 目前仅支持一个分支上创建一个数据集草稿
请求路径
POST /v1/datasets/{id}/drafts
请求参数
Path
名称 | 是否必须 | 描述 |
---|---|---|
id | 是 | 数据集ID |
Body
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
title | string | 是 | 草稿名称 |
branchName | string | 否 | branch 名称,缺省branch为main |
description | string | 否 | 草稿描述 |
请求示例
curl --location --request POST '{service}/v1/datasets/154e35bae8954f09969ef8c9445efd2c/drafts' \
--header 'x-token: {your_accesskey}' \
--header 'Content-Type: application/json' \
--data-raw '{
"title": "my first draft",
"branchName": "main"
}'
返回结果
# 响应状态
HttpStatus 200
# 响应结果
{
"draftNumber": 1
}
- draftNumber: 草稿编号
更新数据集草稿
请求路径
PATCH /v1/datasets/{id}/drafts/{draftNumber}
请求参数
Path
名称 | 是否必须 | 描述 |
---|---|---|
id | 是 | 数据集ID |
draftNumber | 是 | 草稿编号 |
Body
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
title | string | 否 | 草稿名称 |
description | string | 否 | 草稿描述 |
status | string | 否 | 草稿状态, OPEN 或者 CLOSED |
请求示例
curl --location --request POST '{service}/v1/datasets/11df9efe26644d0d99c566325779b415/drafts/1' \
--header 'x-token: {your_accesskey}' \
--header 'Content-Type: application/json' \
--data-raw '{
"title": "my first draft",
"description": "desc change",
"status": "OPEN"
}'
返回结果
# 响应状态
HttpStatus 200
# 响应结果
{}
获取数据集草稿列表
获取数据集的草稿列表
请求路径
GET /v1/datasets/{id}/drafts
请求参数