全部產品
Search
文件中心

Object Storage Service:complete-multipart-upload

更新時間:Apr 03, 2025

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 PolicyBucket Policy授予操作許可權。

API

Action

說明

CompleteMultipartUpload

oss:PutObject

將Part合并為Object。

oss:PutObjectTagging

將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