Complete Multipart Upload
更新時間 2024-09-19 16:53:47
最近更新時間: 2024-09-19 16:53:47
分享文章
本節主要介紹Complete Multipart Upload。
接口通過合并之前的上傳片段來完成一次分片上傳過程。
用戶首先初始化分片上傳過程,然后通過Upload Part接口上傳所有分片。在成功將一次分片上傳過程的所有相關片段上傳之后,調用這個接口來結束分片上傳過程。當收到這個請求的時候,OOS會以分片號升序排列的方式將所有片段依次拼接來創建一個新的文件。在這個Complete Multipart Upload請求中,用戶需要提供一個片段列表。同時,必須確保這個片段列表中的所有片段必須是已經上傳完成的,Complete Multipart Upload操作會將片段列表中提供的片段拼接起來。對片段列表中的每個片段,需要提供該片段上傳完成時返回的ETag頭的值和對應的分片號。
OOS提供了不合并片段也可以讀取Object內容的功能。在沒有調用Complete Multipart Upload接口合并片段時,也可以通過調用Get Object接口來獲取文件內容,OOS會根據最近一次創建的uploadId,以分片號升序的方式順序讀取片段內容,返回給客戶端。
請求語法
POST /ObjectName?uploadId=UploadId HTTP/1.1
Host: BucketName.oos-cn.ctyunapi.cn
Date: Date
Content-Length: Size
Authorization: SignatureValue
<CompleteMultipartUpload>
<Part>
<PartNumber>PartNumber</PartNumber>
<ETag>ETag</ETag>
</Part>
...
</CompleteMultipartUpload>
請求參數
| 名稱 | 描述 | 是否必須 |
|---|---|---|
| CompleteMultipartUpload | 請求的容器。 類型:容器。 子節點:1個或多個Part元素。 |
是 |
| Part | 一個片段的容器。 類型:容器。 父節點:CompleteMultipartUpload。 子節點:PartNumber、Etag。 |
是 |
| PartNumber | 標識片段的分片號。 類型:Integer。 父節點:Part。 |
是 |
| ETag | 片段上傳完成時返回的Etag內容。 類型:字符串。 父節點:Part。 |
是 |
響應結果
| 名稱 | 描述 |
|---|---|
| CompleteMultipartUploadResult | 包含整個響應的容器。 類型:容器。 子節點:Location、 Bucket、Key、ETag。 |
| Location | 新創建文件的URI地址。 類型:URI。 父節點:CompleteMultipartUploadResult。 |
| Bucket | 分片上傳對應的存儲桶。 類型:字符串。 父節點:CompleteMultipartUploadResult。 |
| Key | 新創建的文件的Key。 類型:字符串。 父節點:CompleteMultipartUploadResult。 |
| ETag | ETag用來標識新創建的文件數據。 類型:字符串。 父節點:CompleteMultipartUploadResult。 |
請求示例
下面的分片上傳請求在CompleteMultipartUpload元素中指定了三個片段。
POST /example-object?uploadId=638428231343369399 HTTP/1.1
Host: example-bucket.oos-cn.ctyunapi.cn
Date: Mon, 1 Nov 2010 20:34:56 GMT
Content-Length: 391
Authorization: SignatureValue
<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: f71d177b56cd4d0bcb3e31403542444a090b0fff0103050709
Date: Mon, 1 Nov 2010 20:34:56 GMT
Server: CTYUN
<?xml version="1.0" encoding="UTF-8"?>
<CompleteMultipartUploadResult xmlns="//s3.amazonaws.com/doc/2006-03-01/">
<Location>//example-bucket.oos-cn.ctyunapi.cn/example-Object</Location>
<Bucket>example-Bucket</Bucket>
<Key>example-Object</Key>
</CompleteMultipartUploadResult>