上传文件
接口调用说明.
上传本地文件: 先调用接口一创建上传任务,再人工上传文件到对象存储临时路径(接口返回值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,无特殊返回。