Complete Multipart Upload

2023-02-19 21:14:23

Complete Multipart Upload

如果用户上传完所有的段,就可以调用合并段接口,系统将在服务端将用户指定的段合并成一个完整的对象。

合并完成的多段上传数据可以通过已有的下载对象接口,下载整个多段上传对象或者指定Range下载整个多段上传对象的某部分数据。

合并完成的多段上传数据可以通过已有的删除对象接口,删除整个多段上传对象的所有分段数据,删除后不可恢复。

CompleteMultipartUpload 有以下特殊错误:

  • 错误代码: EntityTooSmall
  • 说明:您建议的上传小于允许的最小对象尺寸。每个部分的大小必须至少为 5 MB,最后一部分除外。
  • 400 错误请求
  • 错误代码: InvalidPart
  • 说明:找不到一个或多个指定部件。 那个部分可能尚未上传,或者指定的实体标签可能没有匹配零件的实体标签。
  • 400 错误请求
  • 错误代码: InvalidPartOrder
  • 说明:部件列表未按升序排列。 零件清单必须按零件编号顺序指定。
  • 400 错误请求
  • 错误代码: NoSuchUpload
  • 说明:指定的分段上传不存在。 上传ID 可能无效,或者分段上传可能已中止或已完成。
  • 404 未找到

请求语法

POST /Key+?uploadId=UploadId HTTP/1.1
Host: Bucket.s3-us-east-1.ossfiles.com

URI 请求参数

名称 描述 类型
Bucket 存储桶名称。 字符串
Key 对象的名称。 字符串
uploadId 多段上传任务Id。 字符串

请求消息头

该请求没有请求消息头。


请求正文

<?xml version="1.0" encoding="UTF-8"?>
<CompleteMultipartUpload xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
   <Part>
      <ETag>string</ETag>
      <PartNumber>integer</PartNumber>
   </Part>
</CompleteMultipartUpload>

请求元素

名称 描述 类型
CompleteMultipartUpload 合并的段列表。 容器
CompleteMultipartUpload.ETag 上传段成功后返回的ETag值,是段内容的唯一标识。该值用于合并段时进行数据一致性校验。 字符串
CompleteMultipartUpload.PartNumber 段号。 整数

响应语法

HTTP/1.1 200 OK
Date: Tue, 17 Jan 2023 08:18:25 GMT
x-amz-id-2: 6297b4bd8d4d49d2b94745f1b63df0f0
x-amz-request-id: 1e69345daa9145528804540b6deb2eb5
Content-type: application/xml

<?xml version="1.0" encoding="UTF-8"?>
<CompleteMultipartUploadResult>
   <Location>string</Location>
   <Bucket>string</Bucket>
   <Key>string</Key>
   <ETag>string</ETag>
</CompleteMultipartUploadResult>

响应元素

名称 描述 类型
Location 合并后得到对象的路径。 容器
Bucket 合并段所在的桶。 字符串
Key 合并得到对象的key。 字符串
ETag 根据各个段的ETag计算得出的结果,是对象内容的唯一标识。 字符串

响应消息头

该请求没有响应消息头。


示例

请求示例

POST /MultipartUpload?uploadId=352b974474df5838413b7c57bf95f3a6 HTTP/1.1
Authorization: AWS4-HMAC-SHA256 Credential=2421a691b4ed625de19f6f92677b6459/20230117/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=a86c5e2caa519bc2342ea046a46dc6a320808f36fa70b9c595c02f5ee431d602
Content-length: 185
Content-type: application/xml
Host: bucket.s3-us-east-1.ossfiles.com
X-amz-content-sha256: 40f2e137dfaaeaf8c8dae8ab651d337a3c476891328989e6e5ca79216766049a
X-amz-date: 20230117T081822Z

<CompleteMultipartUpload xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Part>
        <ETag>"781e5e245d69b566979b86e28d23f2c7"</ETag>
        <PartNumber>1</PartNumber>
    </Part>
</CompleteMultipartUpload>

返回示例

HTTP/1.1 200 OK
Content-length: 325
Content-type: application/xml
Date: Tue, 17 Jan 2023 08:18:25 GMT
x-amz-id-2: 6297b4bd8d4d49d2b94745f1b63df0f0
x-amz-request-id: 1e69345daa9145528804540b6deb2eb5

<?xml version="1.0" encoding="UTF-8"?>
<CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Location>https://bucket.s3-us-east-1.ossfiles.com/MultipartUpload</Location>
    <Bucket>bucket</Bucket>
    <Key>MultipartUpload</Key>
    <ETag>"8e938564cd1410f0ec1c1781466a6738-1"</ETag>
</CompleteMultipartUploadResult>