ASTRO轻应用 ASTROZERO-分段上传:完成上传合并段

时间:2024-10-18 10:59:27

完成上传合并段

  • 功能介绍

    所有分段上传完成后,需要调用完成上传接口,在存储服务端(如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

    参数解释

    整个分段上传任务的标识,从初始化分段上传任务的返回结果中获取该值。

    约束限制

    不涉及。

    取值范围

    不涉及。

    默认取值

    不涉及。

  • 请求参数
    数组类型,每个元素中包含如表7所示字段。
    表7 请求参数说明

    参数

    是否必选

    参数类型

    描述

    ETag

    String

    参数解释

    文件分段的标识,请从上传分段的返回结果中获取该值。

    约束限制

    不涉及。

    取值范围

    不涉及。

    默认取值

    不涉及。

    partNumber

    String

    参数解释

    分段号。

    对于同一个分段上传任务(即uploadId相同),分段号“partNumber”不但唯一标识这一段数据,也标识了这段数据在整个对象文件内的相对位置,从上传分段的返回结果中获取该值。

    约束限制

    不涉及。

    取值范围

    1~10000。

    默认取值

    不涉及。

  • 响应参数
    表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": "成功"
    }
support.huaweicloud.com/api-astrozero/astrozero_api_0090.html