ASTRO轻应用 ASTROZERO-分段上传:完成上传合并段
完成上传合并段
- 功能介绍
所有分段上传完成后,需要调用完成上传接口,在存储服务端(如OBS)合并段生成最终对象文件。在执行完成上传操作时,需要提供所有有效的分段列表(包括分段号和分段ETag值)。AstroZero收到提交的分段列表后,会逐一验证每个段的有效性。当所有段验证通过后,将把这些分段组合成最终的对象。合并的分段任务可以是不连续的分段号。
完成上传任务后,“uploadId”就失效了,不能再用于终止(即取消)分段上传任务。
- URI
POST AstroZero 域名 /u-route/baas/sys/v1.1/connectors/{connector_type}/{connector_name}/completeupload?object=X&uploadId=Y
表6 路径参数 参数
是否必选
参数类型
描述
connector_type
是
String
参数解释:
连接器的类型。
约束限制:
不涉及。
取值范围:
- obs:与OBS对接的连接器。
- minio:与MINIO对接的连接器。
- objectstorageproxy:对象存储代理类型。
默认取值:
不涉及。
connector_name
是
String
参数解释:
连接器实例的名称,即创建连接器时命名的连接器实例名称。
约束限制:
不涉及。
取值范围:
不涉及。
默认取值:
不涉及。
object
是
String
参数解释:
上传文件到桶里的全路径,包含文件名、文件类型、上传到桶里的路径。不携带路径时,表示上传到桶的根目录下
示例:取值为“a/b/c/test.mp4”,表示将文件“test.mp4”上传到桶的“a/b/c”路径下。如果桶中不存在该路径,会创建该路径。
约束限制:
不涉及。
取值范围:
不涉及。
默认取值:
不涉及。
uploadId
是
String
参数解释:
整个分段上传任务的标识,从初始化分段上传任务的返回结果中获取该值。
约束限制:
不涉及。
取值范围:
不涉及。
默认取值:
不涉及。
- 请求参数
- 响应参数
表8 响应参数说明 参数
参数类型
描述
resCode
String
参数解释:
返回码。
取值范围:
如果返回“0”代表请求成功,其他错误码说明请参考错误码。
resMsg
String
参数解释:
返回消息。
取值范围:
如果成功状态,通常会返回“Success”,其他情况会返回具体的错误信息。
- 请求示例
已创建好OBS类型连接器,连接器实例名称为“命名空间__TestOBS”,需要向该OBS桶的“a/b/c”路径下上传大文件。已有初始化分段上传任务和两个分段上传任务,标识“uploadId”为“0000017B761F112966C45D8FF0F75F13”,调用如下请求,完成分段上传任务,合并所有分段生成最终对象文件。
POST https://AstroZero域名/u-route/baas/sys/v1.1/connectors/obs/命名空间__TestOBS/completeupload?object=a/b/c/test.mp4&uploadId=0000017B761F112966C45D8FF0F75F13 [{ "ETag": "\"d41d8cd98f00b204e9800998ecf8427e\"", "partNumber": 1 }, { "ETag": "\"7dcad0c8a7398333ff25418bad511581\"", "partNumber": 2 }]
- 响应示例
{ "resCode": "0", "resMsg": "成功" }