在将所有数据Part都上传完成后,必须调用Complete Multipart Upload API 来完成整个文件的Multipart Upload。在执行该操作时,用户必须提供所有有效的数据Part的列表(包括part号码和ETAG);棱束链对象储存 收到用户提交的Part列表后,会逐一验证每个数据Part的有效性。当所有的数据Part验证通过后,棱束链对象储存 将把这些数据part组合成一个完整的Object。
请求语法
POST /bucket-name/multi-part-obj?uploadId=UploadId HTTP/1.1
Host: s3-us-east-1.ossfiles.com
Content-Length:ContentLength
Date: GMT Date
Authorization: SignatureValue
<CompleteMultipartUpload>
<Part>
<PartNumber>PartNumber</PartNumber>
<ETag>ETag</ETag>
</Part>
...
</CompleteMultipartUpload>
请求元素(Request Elements)
名称 | 描述 |
---|---|
CompleteMultipartUpload | 保存 Complete Multipart Upload 请求内容的容器。 类型:容器 子节点:一个或多个 Part 元素 父节点:无 |
Part | 保存已经上传 Part 信息的容器。 类型:容器 子节点:ETag, PartNumber 父节点:CompleteMultipartUpload |
PartNumber | Part 数目。 类型:整数 父节点:Part |
ETag | Part 成功上传后,棱束链对象储存 返回的 ETag值。 类型:字符串 父节点:Part |
响应元素(Response Elements)
名称 | 描述 |
---|---|
CompleteMultipartUploadResult | 保存 Complete Multipart Upload 请求结果的容器。 类型:容器 子节点:Bucket, Key, ETag, Location 父节点:None |
Location | 新创建 Object 的 URL。 类型:字符串 父节点:CompleteMultipartUploadResult |
Bucket | Bucket 名称。 类型:字符串 父节点:CompleteMultipartUploadResult |
Key | 新创建 Object 的名字。 类型:字符串 父节点:CompleteMultipartUploadResult |
ETag | ETag (entity tag) 在每个 Object 生成的时候被创建,用于标示一个 Object 的内容。Complete Multipart Upload 请求创建的 Object,ETag 值是其内容的 UUID。ETag 值可以用于检查 Object 内容是否发生变化。 类型:字符串 父节点:CompleteMultipartUploadResult |
细节分析
示例
请求示例:
POST /test212/1.vmdk?uploadId=323db2d29e0be022e1e21d1b7c91594c HTTP/1.1
Authorization: AWS4-HMAC-SHA256 Credential=6a19c6de088ff32ff663287eec8f3b85/20220420/us-east-1/s3/aws4_request,SignedHeaders=content-md5;host;user-agent;x-amz-content-sha256;x-amz-date, Signature=678c259c806259932756359c8c08e2a6cddd7e0d9851705dd2c7b22b8c6c1082
x-amz-content-sha256: 34e2c5aedea9193c845f7622ac738697139d906a8a28c3902d664693da6a5d7d
x-amz-date: 20220420T095029Z
Host: s3-us-east-1.ossfiles.com
Content-Length: 102
<?xml version="1.0"?>
<CompleteMultipartUpload>
<Part>
<PartNumber>1</PartNumber>
<ETag>"dedd1949db7b094250ef80191b52d7de"</ETag>
</Part>
<Part>
<PartNumber>2</PartNumber>
<ETag>"d640e8ca7f736e1f4037283c1296076c"</ETag>
</Part>
</CompleteMultipartUpload>
返回示例:
HTTP/1.1 200 OK
Date: Wed, 20 Apr 2022 09:50:27 GMT
Content-Type: application/xml
Content-Length: 331
Connection: keep-alive
Expires: Sat, 03 Mar 1990 23:33:33 GMT
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Location>https://s3-us-east-1.ossfiles.com/test212/1.vmdk</Location>
<Bucket>test212</Bucket>
<Key>1.vmdk</Key>
<ETag>"9427628e4e1bd8987846b1fdf3eee85f-26"</ETag>
</CompleteMultipartUploadResult>