最近更新时间:2022-01-18
使用CompleteMultipartUpload接口,通过组装之前上传的片完成分片上传。
首先初始化一个分片上传,通过upload part上传所有片。在上传所有相关片后,通过执行该操作完成这个分片上传。一旦接收到这个请求,服务器将所有片编号安装升序排序来创建一个新的object。在完成上传请求中,必须提供片列表。必须保证片列表是完成的。片列表中的每一片必须提供片编号和返回的标签。
POST /ObjectName?uploadId=UploadId HTTP/1.1 Host: examplebucket.region.unicloudsrv.com Date: Date Content-Length: Size Authorization: authorization string
<CompleteMultipartUpload> <Part> <PartNumber>PartNumber</PartNumber> <ETag>ETag</ETag> </Part> ... </CompleteMultipartUpload> |
参数 | 描述 |
CompleteMultipartUpload | 请求容器。 |
Part | 与以前上传的一片相关联的元素容器。 |
PartNumber | 上传片编号。 |
ETag | 当上传片完成后返回的实体标签。 |
参数 | 描述 |
x-amz-expiration | 如果object的Expiration作为bucket的生命周期中的一片被设置,该头被返回。 |
x-amz-server-side-encryption | POST请求中如果服务端使用了Unicloud KMS加密或者Unicloud托管加密,响应中包括该头。 |
x-amz-server-side-encryption-aws-kms-key-id | 如果x-amz-server-side-encryption存在并且赋值为aws:kms,该头标识为object所使用的KMS主密钥。 |
x-amz-server-side-encryption-customer-algorithm | 如果服务端采用了SSE-C加密请求,响应中就会包括该头来确认使用了该加密算法。 |
x-amz-version-id | 新创建对象的版本ID,以防bucket启用了版本控制。 |
参数 | 描述 |
CompleteMultipartUploadResult | 响应信息的容器。 |
Location | 指明新创建对象的URI。 |
Bucket | 包含新创建对象的空间的名称。 |
Key | 新创建对象的object key。 |
ETag | 用于标识新创建对象内容的实体标签。具有不同内容的对象对应着不同的实体标签。实体标签是一个不透明的字符串,可能包含MD5摘要,也可能不包含。如果不 包含对象内容的MD5摘要,它将包含至少一个非十六进制字符和或多于或少于32位的十六进制数字。 |
参数 | 描述 |
EntityTooSmall | 用户拟上传的块大小小于对象所允许的最小值(5MB)。 |
InvalidPart | 一个或多个指定的块没有找到。块可能没有被上传,也可能因为上传了但实体标签不匹配。 |
InvalidPartOrder | 分块列表没有按照升序排列。分块必须按序指定分块序号。 |
NoSuchUpload | 指定的分块上传任务不存在。可能是上传ID无效,也可能是分块上传任务已经完成或放弃。 |
POST /example-object?uploadId=AAAsb2FkIElEIGZvciBlbHZpbmcncyWeeS1tb3ZpZS5tMnRzIRRwbG9hZA HTTP/1.1 Host: examplebucket.region.unicloudsrv.com Date: Mon, 1 Nov 2010 20:34:56 GMT Content-Length: 391 Authorization: authorization string
<CompleteMultipartUpload> <Part> <PartNumber>1</PartNumber> <ETag>"a54357aff0632cce46d942af68356b38"</ETag> </Part> <Part> <PartNumber>2</PartNumber> <ETag>"0c78aef83f66abc1fa1e8477f296d394"</ETag> </Part> <Part> <PartNumber>3</PartNumber> <ETag>"acbd18db4cc2f85cedef654fccc4a4d8"</ETag> </Part> </CompleteMultipartUpload>
HTTP/1.1 200 OK x-amz-id-2: Uuag1LuByRx9e6j5Onimru9pO4ZVKnJ2Qz7/C1NPcfTWAtRPfTaOFg== x-amz-request-id: 656c76696e6727732072657175657374 Date: Mon, 1 Nov 2010 20:34:56 GMT Connection: close Server: nginx |
<?xml version="1.0" encoding="UTF-8"?> <CompleteMultipartUploadResult xmlns="http://region.unicloudsrv.com/doc/2006-03-01/"> <Location>http://examplebucket.region.unicloudsrv.com/Example-Object</Location> <Bucket>Example-Bucket</Bucket> <Key>Example-Object</Key> <ETag>"3858f62230ac3c915f300c664312c11f-9"</ETag> </CompleteMultipartUploadResult> |