该操作通过组合之前上传的分片来完成分片上传。
首先初始化分片上传,然后使用Upload Parts上传分片。成功上传所有分片后,可调用该API完成分片上传。OSS收到该请求后,会按照分片编号进行升序连接以创建Object。在该请求中,需要提供完整的分片列表,以及每个分片的编号及Etag。
合并所以分片需要几分钟时间,所以OSS在开始处理该请求后会回复200 OK。在处理过程中,OSS会定期发送空白字符以防止连接超时。该请求在200 OK响应发送后可能会失败,您需要检查响应主体来确定请求是否成功。
POST /ObjectName?uploadId=UploadId HTTP/1.1 Host: <bucket>.s3.<region>.jdcloud-oss.com Date: <Date> Content-Length: <Size> Authorization: <authorization string> <CompleteMultipartUpload> <Part> <PartNumber>PartNumber</PartNumber> <ETag>ETag</ETag> </Part> ... </CompleteMultipartUpload>
无请求参数
无特殊Header
名称 | 描述 | 必须 |
---|---|---|
CompleteMultipartUpload | 请求集合。 Ancestor: None Type: Container Children: One or more Part elements |
是 |
Part | 之前上传的分片的PartNumber及ETag信息的集合。 Ancestor: CompleteMultipartUpload Type: Container Children: PartNumber, ETag |
是 |
PartNumber | 分片的唯一标识符。 Ancestor: Part Type: Integer |
是 |
ETag | 分片上传后返回的实体标签。 Ancestor: Part Type: String |
是 |
无特殊Header
名称 | 描述 |
---|---|
CompleteMultipartUploadResult | 响应集合。 Type: Container Children: Bucket, Key, UploadId Ancestors: None |
Location | 新创建的Bucket的URL。 Type: URI Ancestors: CompleteMultipartUploadResult |
Bucket | 所在的Bucket名称 Type: String Ancestors: CompleteMultipartUploadResult |
Key | 新创建的Object名称。 Type: String Ancestors: CompleteMultipartUploadResult |
Etag | Etag可以标识新创建的Object数据。不同Object有不同的Etag。 Type: String Ancestors: CompleteMultipartUploadResult |
Error Code | 描述 | HTTP Status Code |
---|---|---|
InvalidPart | 一个或多个指定的分片不存在。分片可能没有上传或者指定的Etag与分片的Etag不匹配。 | 400 Bad Request |
InvalidPartOrder | 分片列表没有按照升序排列。 | 400 Bad Request |
NoSuchUpload | 指定的分片上传不存在,Upload ID是无效的。 | 404 Not Found |
POST /example-object?uploadId=AAAsb2FkIElEIGZvciBlbHZpbmcncyWeeS1tb3ZpZS5tMnRzIRRwbG9hZA HTTP/1.1 Host: oss-example.s3.<region>.jdcloud-oss.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-request-id: 656c76696e6727732072657175657374 Date: Mon, 1 Nov 2010 20:34:56 GMT Connection: close Server: JDCloudOSS <?xml version="1.0" encoding="UTF-8"?> <CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Location>http://Example-Bucket.s3.amazonaws.com/Example-Object</Location> <Bucket>Example-Bucket</Bucket> <Key>Example-Object</Key> <ETag>"3858f62230ac3c915f300c664312c11f-9"</ETag> </CompleteMultipartUploadResult>