complete-multipart-upload用於完成整個檔案的分區上傳。
注意事項
調用 complete-multipart-upload 操作時,使用者需提供所有有效分區列表(含 PartNumber 和 ETag),PartNumber 範圍為 1~10000,按升序排列且可不連續;OSS 會驗證每個分區的有效性,確保除最後一個分區外的每個分區大小不小於 100 KB,驗證通過後將這些分區組合成一個完整的對象。
由於OSS處理CompleteMultipartUpload請求時會持續一定的時間。在這段時間內,如果用戶端與OSS之間串連中斷,OSS仍會繼續該請求。
同一個Object可以同時擁有不同的UploadId,當Complete一個UploadId後,此UploadId將失效,但該Object的其他UploadId不受影響。
許可權說明
阿里雲帳號預設擁有全部許可權。阿里雲帳號下的RAM使用者或RAM角色預設沒有任何許可權,需要阿里雲帳號或帳號管理員通過RAM Policy或Bucket Policy授予操作許可權。
API | Action | 說明 |
CompleteMultipartUpload |
| 將Part合并為Object。 |
| 將Part合并為Object時,如果通過x-oss-tagging指定Object的標籤,則需要此操作的許可權。 |
命令格式
ossutil api complete-multipart-upload --bucket value --key value --upload-id value --complete-multipart-upload value [flags]
參數 | 類型 | 說明 |
--bucket | string | 要修改的目標Bucket。 |
--complete-all | string | 指定是否列舉當前UploadId已上傳的所有Part。 |
--complete-multipart-upload | string | 儲存CompleteMultipartUpload請求內容的容器。 |
--encoding-type | string | 指定對返回的內容進行編碼,指定編碼的類型。 |
--forbid-overwrite | string | 指定CompleteMultipartUpload操作時是否覆蓋同名Object。 |
--key | string | Object的完整路徑。 |
--upload-id | string | MultipartUpload事件的ID。 |
complete-multipart-upload命令對應API介面CompleteMultipartUpload。關於API中的具體參數含義,請參見CompleteMultipartUpload。
--complete-multipart-upload
--complete-multipart-upload配置選項既支援XML文法也支援JSON文法,當選項值包含file://首碼時,表示從檔案中讀取配置。
XML文法:
<CompleteMultipartUpload> <Part> <PartNumber>integer</PartNumber> <ETag>string</ETag> </Part> ... </CompleteMultipartUpload>
JSON文法:
{ "Part": [ { "PartNumber": integer, "ETag": "string" }, ... ] }
關於支援的全域命令列選項,請參見支援的全域命令列選項。
使用樣本
以下樣本展示了如何為儲存空間examplebucket
中上傳ID為123的exampleobject完成分區上傳。
使用XML設定檔,complete-multipart-upload.xml內容如下:
<?xml version="1.0" encoding="UTF-8"?> <CompleteMultipartUpload> <Part> <PartNumber>1</PartNumber> <ETag>"C884BAB4F7A89D38A194568C7DE****"</ETag> </Part> <Part> <PartNumber>2</PartNumber> <ETag>"C884BAB4F7A89D38A194568C7DEA****"</ETag> </Part> </CompleteMultipartUpload>
命令樣本如下:
ossutil api complete-multipart-upload --bucket examplebucket --key exampleobject --upload-id 123 --complete-multipart-upload file://complete-multipart-upload.xml
使用JSON設定檔,complete-multipart-upload.json 內容如下:
{ "Part": [ { "PartNumber": "1", "ETag": "\"C884BAB4F7A89D38A194568C7DE****\"" }, { "PartNumber": "2", "ETag": "\"C884BAB4F7A89D38A194568C7DEA****\"" } ] }
命令樣本如下:
ossutil api complete-multipart-upload --bucket examplebucket --key exampleobject --upload-id 123 --complete-multipart-upload file://complete-multipart-upload.json
使用JSON配置參數,命令樣本如下:
ossutil api complete-multipart-upload --bucket examplebucket --key exampleobject --upload-id 123 --complete-multipart-upload file://complete-multipart-upload.json
以下樣本展示了如何列舉儲存空間examplebucket
的當前UploadId為123已上傳的所有Part。
ossutil api complete-multipart-upload --bucket examplebucket --key exampleobject --upload-id 123 --complete-all yes