完成整个分块上传

最近更新时间:2023-02-03 11:03:53

接口描述

  • 接口名称:CompleteMultipartUpload
  • 接口功能:接口请求用来实现完成整个分块上传。当使用 UploadParts 上传所有分块完成后,必须调用该 API 来完成整个文件的分块上传。
    注意:

    在使用该 API 时,您必须在请求 Body 中给出每一个块的 PartNumber 和 ETag,用来校验块的准确性。

    由于分块上传完成后需要合并,而合并需要数分钟时间,因而当合并分块开始时,数据保险箱会立即返回200的状态码,在合并的过程中,数据保险箱会周期性的返回空格信息来保持连接活跃,直到合并完成,数据保险箱会在 Body 中返回合并完成后的整个块内容。
    • 当上传的分块小于1MB的时候,在调用该 API 时,会返回400 EntityTooSmall。
    • 当上传块编号不连续的时候,在调用该 API 时,会返回400 InvalidPart。
    • 当请求 Body 中的块信息没有按序号从小到大排列,在调用该 API 时,会返回400 InvalidPartOrder。
    • 当 UploadId 不存在的时候,在调用该 API 时,会返回404 NoSuchUpload。
注意:

建议您及时完成分块上传或者舍弃分块上传,因为已上传但是未终止的块会占用存储空间,进而产生存储费用。

请求

请求示例

POST /<CofferName-APPID>/<ObjectKey>?uploadId=UploadId HTTP/1.1
Host: cdcs.<Region>.myqcloud.com
Date: GMT Date
Content-length: Size
Authorization: Auth String

说明:

Authorization: Auth String 详情,请参见 请求签名 文档。

请求头

此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。

请求体

该 API 接口请求的请求体具体节点内容为:

{
    "Part": [{
        "PartNumber": 1,
        "ETag": "827ccb0eea8a706c4c34a16891f84e7b"
    }, {
        "PartNumber": 2,
        "ETag": "927ccb0eea8a706c4c34a16891f84e8b"
    }]
}

请求参数描述如下

节点名称(关键字) 是否必选 类型 描述
Part Object 用来说明本次分块上传中每个块的信息。

Part 对象的描述:

节点名称(关键字) 是否必选 类型 描述
PartNumber Integer 块编号。
ETag String 每个块文件的 MD5 算法校验值。

响应

响应头

该响应仅使用公共响应头部,了解公共响应头详情,请参见 公共响应头部 文档。

响应体

该响应体返回为 application/json 数据,包含完整节点数据的内容展示如下:

{
    "Locations": {
        "Location": ["ap-beijing"]
    },
    "Coffer": "examplecoffer-1250000000",
    "Key": "exampleobject",
    "ETag": "\"3a0f1fd698c235af9cf098cb74aa25bc\""
}

请求参数描述如下:

节点名称(关键字) 类型 描述
Locations Object 新创建的对象的所在地域列表。
Location Enum 新创建的对象的所在地域,枚举值请参见 地域和访问域名 文档。
例如 ap-beijing,ap-hongkong,eu-frankfurt 等
Coffer String 分块上传的目标保险箱,格式为 CofferName-APPID,例如:examplecoffer-1250000000。
Key String 对象名称。
ETag String 合并后对象的唯一标签值,该值不是对象内容的 MD5 校验值,仅能用于检查对象唯一性。

错误码

此接口的特殊错误信息如下所述,全部错误信息请参见 错误码 文档。

错误码 HTTP 状态码 描述
AssumeRoleFailed 409 Conflict 扮演角色失败,检查是否已授予保险箱角色。
KMSFailed 409 Conflict 调用 KMS 失败。

示例

请求

POST /examplecoffer-1250000000/exampleobject?uploadId=1484728886e63106e87d8207536ae8521c89c42a436fe23bb58854a7bb5e87b7d77d4ddc48 HTTP/1.1
Host: cdcs.ap-beijing.myqcloud.com
Date: Wed,18 Jan 2017 16:17:03 GMT
Authorization: [Auth String]
Content-Length: 138

{
    "Part": [{
        "PartNumber": 1,
        "ETag": "827ccb0eea8a706c4c34a16891f84e7b"
    }, {
        "PartNumber": 2,
        "ETag": "927ccb0
eea8a706c4c34a16891f84e8b"
    }]
}

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 277
Connection: keep-alive
Date: Wed,18 Jan 2017 16:17:03 GMT
Server: tencent-cdcs
x-cdcs-request-id: NTg3ZjJlMjVfNDYyMDRlXzM0YzRfMjc1

{
    "Locations": {
        "Location": ["ap-beijing"]
    },
    "Coffer": "examplecoffer-1250000000",
    "Key": "exampleobject",
    "ETag": "\"3a0f1fd698c235af9cf098cb74aa25bc\""
}