上传文件
接口调用说明
上传本地文件: 先调用接口一创建上传任务,再人工上传文件到对象存储临时路径(接口返回值response.source_path),最后调用接口二Web端完成文件上传.
上传对象存储文件: 直接调用接口一创建上传任务即可完成上传.
接口一:创建文件上传任务.
POST /aids/aidmp/data/v2/dataSpaces/{data_space_id}/repos/{repo_id}/branches/{branch_id}/uploadFilesTasks
请求头(Request Header)
请求参数(Request Parameters)
名称 | 类型 | 必须 | 位置 | 默认值 | 取值范围 | 描述 |
---|---|---|---|---|---|---|
data_space_id | string | 是 | path | - | - | 数据空间ID. |
repo_id | string | 是 | path | - | - | 数据集ID. |
branch_id | string | 是 | path | - | - | 分支ID. |
请求体(Request Body)
名称 | 类型 | 必须 | 默认值 | 取值范围 | 描述 |
---|---|---|---|---|---|
task_type | integer($enum) | 是 | - | - | 上传任务的类型. |
commit_id | string | 否 | - | - | 新建commitID. |
bucket_name | string | 否 | - | - | 文件的所在的源桶名称. |
oss_endpoint | string | 否 | - | - | 对象存储的endpoint. |
source_path | string | 是 | - | - | 上传的源路径. |
target_path | string | 是 | - | - | 上传文件的远端目的路径. |
commit_msg | string | 否 | - | - | 版本提交信息. |
real_user_info | object | 否 | - | - | 真实请求用户信息. |
oss_config | object | 否 | - | - | 对象存储信息. |
extra_info | object | 否 | - | - | 额外信息. |
其中,task_type
有如下情况
状态 | 数值 | 含义 |
---|---|---|
LOCAL_UPLOAD | 0 | 本地上传 |
AOSS_UPLOAD | 1 | 对象存储上传 |
WEB_UPLOAD | 2 | web端上传 |
SENSEDATA_UPLOAD | 3 | senseData上传 |
MOSAIC_UPLOAD | 4 | 数据脱敏 |
LOCAL_DOWNLOAD | 5 | 导出到本地 |
AOSS_DOWNLOAD | 6 | 导出到对象存储 |
其中,real_user_info
的参数如下
名称 | 类型 | 描述 |
---|---|---|
user_id | string | 用户id. |
user_name | string | 用户名. |
其中,oss_config
的参数如下
名称 | 类型 | 描述 |
---|---|---|
bucket_name | string | 文件的所在的源桶名称. |
oss_endpoint | string | 对象存储的endpoint. |
access_key | string | 对象存储的access key. |
secret_key | string | 对象存储的secret key. |
virtual_host_style | bool | aoss需要为false,阿里云oss需要为true. |
disable_ssl | bool | 一些自建的没配置https的对象存储需要为true. |
insecure_skip_verify | bool | 一些自建的配置了https但是没配置证书的需要为true. |
其中,extra_info
的参数如下
名称 | 类型 | 描述 |
---|---|---|
related_id | string | 关联任务的ID. |
auth_info | object | 授权信息. |
其中,auth_info
的参数如下
名称 | 类型 | 描述 |
---|---|---|
auth_state | integer($enum) | 授权状态. |
authority_type | integer($enum) | 授权类型. |
auth_id | string | 授权项目id. |
其中,auth_state
有如下情况
状态 | 数值 | 含义 |
---|---|---|
AUTH_REVIEW_STATUS_UNKNOWN | 0 | 占位 |
AUTH_REVIEWING | 1 | 审核中 |
AUTH_SUCCEED | 2 | 审核通过 |
AUTO_PASSED | 3 | 自动通过 |
AUTH_REJECTED | 4 | 审核驳回 |
其中,authority_type
有如下情况
状态 | 数值 | 含义 |
---|---|---|
AUTHORITY_TYPE_UNKNOWN | 0 | 占位 |
DATASET | 1 | 关联历史数据集 |
AUTH_CENTER | 2 | 关联授权中心 |
INSENSITIVE | 3 | 无授权,不含人脸等敏感信息 |
NOT_DESENSITIZED | 4 | 无授权,需脱敏打码处理 |
SEALING | 5 | 无授权,封存处理 |
DESENSITIZED | 6 | 无授权,数据已脱敏打码 |
请求示例(Request Example)
curl --location 'https://aidmp.cn-sh-01.sensecoreapi.dev/aids/aidmp/data/v2/dataSpaces/ecfcd941-575c-11ee-9d6f-46f164dda338/repos/b2dc6d90-6b68-46e2-a1d1-fd4b323eef40/branches/a0100b78-0c88-45a3-b561-ceb71a777f01/uploadFilesTasks' \
--header 'Content-Type: application/json' \
--data '{
"target_path": "dir1",
"commit_msg": "上传 000000017627.jpg",
"task_type": 2
}'
响应(Response)
名称 | 类型 | 描述 |
---|---|---|
name | string | 上传任务ID. |
metadata | object | 上传任务元信息. |
done | boolean | 接口是否完成. |
error | object | 错误信息. |
response | object | 上传任务. |
其中,metadata
的参数如下
名称 | 类型 | 描述 |
---|---|---|
create_time | string($date-time) | 任务创建时间. |
task_state | integer($enum) | 任务状态. |
succeed_file_num | integer | 已成功上传的文件个数. |
finish_time | string($date-time) | 任务完成时间. |
total_file_size | integer | 总文件大小. |
total_file_count | integer | 总文件数. |
successed_file_size | integer | 已成功文件大小. |
successed_file_count | integer | 已成功文件数. |
failed_file_size | integer | 失败文件大小. |
failed_file_count | integer | 失败文件数. |
files | array[object] | 文件列表. |
err_msg | string | 错误信息. |
commit_msg | string | 版本提交信息. |
creator_name | string | 创建者用户名. |
target_branch | string | 上传目标分支. |
id | string | 上传任务ID. |
task_type | integer($enum) | 上传任务的类型. |
commit_id | string | 新建commitID. |
bucket_name | string | 文件的所在的源桶名称. |
oss_endpoint | string | 对象存储的endpoint. |
source_path | string | 上传的源路径. |
target_path | string | 上传文件的远端目的路径. |
其中,task_state
有如下情况
状态 | 数值 | 含义 |
---|---|---|
STARTED | 0 | 开始,默认值 |
RUNNING | 1 | 任务正在运行 |
FINISHED | 2 | 任务已完成 |
ERROR | 3 | 任务出错失败 |
CANCEL | 4 | 任务已取消 |
REVIEW | 5 | 数据审核状态 |
REJECTED | 6 | 数据审核驳回状态 |
SENSEDATA_TRANSFER | 7 | senseData数据传输状态 |
SENSEDATA_TRANSFER_FAILED | 8 | senseData数据传输失败状态 |
其中,files
的参数如下
名称 | 类型 | 描述 |
---|---|---|
path | string | 文件路径. |
state | integer($enum) | 文件状态. |
err | integer($enum) | 上传文件错误. |
size | integer | 文件大小. |
其中,state
有如下情况
状态 | 数值 | 含义 |
---|---|---|
PENDING | 0 | 待办 |
SUCCESSED | 1 | 成功 |
FAILED | 2 | 失败 |
其中,err
有如下情况
状态 | 数值 | 含义 |
---|---|---|
UNKNOWN_ERROR | 0 | 系统错误 |
AOSS_SERVER_ERROR | 1 | AOSS报错 |
INVALID_FORMAT_ERROR | 2 | 格式校验不通过 |
FORBIDDEN_ERROR | 3 | 无权限 |
NOT_FOUND_ERROR | 4 | 文件未找到 |
其中,error
的参数如下
名称 | 类型 | 描述 |
---|---|---|
code | integer | 错误码. |
message | string | 错误信息. |
details | object | 错误详情. |
其中,response
的参数如下
名称 | 类型 | 描述 |
---|---|---|
task_type | integer($enum) | 上传任务的类型. |
commit_id | string | 新建commitID. |
bucket_name | string | 文件的所在的源桶名称. |
oss_endpoint | string | 对象存储的endpoint. |
source_path | string | 上传的源路径. |
target_path | string | 上传文件的远端目的路径. |
commit_msg | string | 版本提交信息. |
real_user_info | object | 真实请求用户信息. |
oss_config | object | 对象存储信息. |
extra_info | object | 额外信息. |
响应示例(Response Example)
{
"name": "31650360-1689-445d-bdd7-5dba6c3415ac",
"metadata": {
"@type": "type.googleapis.com/sensecore.graviton.datamanagement.v1.UploadFilesMetadata",
"create_time": "2023-12-05T08:37:40.821Z",
"task_state": 0,
"succeed_file_num": "0",
"finish_time": "2023-12-05T08:37:40.821Z",
"total_file_size": "0",
"total_file_count": "0",
"successed_file_size": "0",
"successed_file_count": "0",
"failed_file_size": "0",
"failed_file_count": "0",
"files": [],
"err_msg": "",
"commit_msg": "上传 00319.parquet",
"creator_name": "testdata1024",
"target_branch": "master",
"id": "31650360-1689-445d-bdd7-5dba6c3415ac",
"task_type": 2,
"commit_id": "c984e0b6bd574b8c83b540e55c7b5fa4",
"bucket_name": "testdata",
"oss_endpoint": "http://aoss-business.cn-sh-01.sensecoreapi-oss.tech",
"source_path": "graviton/repo/452ba6a5-06bc-4b6b-a121-c30797ad3131/tmp/31650360-1689-445d-bdd7-5dba6c3415ac",
"target_path": "."
},
"done": false,
"response": {
"@type": "type.googleapis.com/sensecore.graviton.datamanagement.v1.UploadFilesTask",
"task_type": 0,
"commit_id": "c984e0b6bd574b8c83b540e55c7b5fa4",
"bucket_name": "testdata",
"oss_endpoint": "http://aoss-business.cn-sh-01.sensecoreapi-oss.tech",
"source_path": "graviton/repo/452ba6a5-06bc-4b6b-a121-c30797ad3131/tmp/31650360-1689-445d-bdd7-5dba6c3415ac",
"target_path": ".",
"commit_msg": "",
"real_user_info": null,
"oss_config": null,
"extra_info": null
}
}
接口二:Web端完成文件上传.
POST /aids/aidmp/data/v2/dataSpaces/{data_space_id}/repos/{repo_id}/uploadFilesOperations/{upload_task_id}:finishWebUpload
请求头(Request Header)
请求参数(Request Parameters)
名称 | 类型 | 必须 | 位置 | 默认值 | 取值范围 | 描述 |
---|---|---|---|---|---|---|
data_space_id | string | 是 | path | - | - | 数据空间ID. |
repo_id | string | 是 | path | - | - | 数据集ID. |
upload_task_id | string | 是 | path | - | - | 上传任务ID. |
请求体(Request Body)
名称 | 类型 | 必须 | 默认值 | 取值范围 | 描述 |
---|---|---|---|---|---|
repo_id | string | 否 | - | - | 数据集ID. |
task_id | string | 否 | - | - | 上传任务ID. |
files | array[object] | 否 | - | - | 上传对象存储临时路径失败的文件列表. |
failed_file_size | string | 否 | - | - | 上传到对象存储临时路径失败文件大小. |
failed_file_count | string | 否 | - | - | 上传到对象存储临时路径失败文件数量. |
其中,files
的参数如下
名称 | 类型 | 描述 |
---|---|---|
path | string | 文件路径. |
state | integer($enum) | 文件状态. |
err | integer($enum) | 上传文件错误. |
size | integer | 文件大小. |
其中,state
有如下情况
状态 | 数值 | 含义 |
---|---|---|
PENDING | 0 | 待办 |
SUCCESSED | 1 | 成功 |
FAILED | 2 | 失败 |
其中,err
有如下情况
状态 | 数值 | 含义 |
---|---|---|
UNKNOWN_ERROR | 0 | 系统错误 |
AOSS_SERVER_ERROR | 1 | AOSS报错 |
INVALID_FORMAT_ERROR | 2 | 格式校验不通过 |
FORBIDDEN_ERROR | 3 | 无权限 |
请求示例(Request Example)
curl --location 'https://aidmp.cn-sh-01.sensecoreapi.dev/aids/aidmp/data/v2/dataSpaces/ecfcd941-575c-11ee-9d6f-46f164dda338/repos/b2dc6d90-6b68-46e2-a1d1-fd4b323eef40/uploadFilesOperations/62f5b134-63f9-4c59-a877-b14922833e93:finishWebUpload' \
--header 'Content-Type: application/json' \
--data '{
"failed_file_count": 0,
"failed_file_size": 0,
"files": []
}'
响应示例(Response Example)
正常HTTP状态码为200,无特殊返回。