分段上傳 (PUT uploadID) - Amazon S3 Glacier

如果您不熟悉 Amazon Simple Storage Service (Amazon S3) 中的封存儲存,建議您從深入了解 Amazon S3 中的 S3 Glacier 儲存類別、S3 Glacier Instant RetrievalS3 Glacier Flexible RetrievalS3 Glacier Deep Archive 開始。如需詳細資訊,請參閱 Amazon S3 使用者指南中的 S3 Glacier 儲存類別和存檔物件的儲存類別。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

分段上傳 (PUT uploadID)

描述

這個分段上傳操作會上傳封存的一部分。您可以任何順序上傳封存部分,因為在您的分段上傳請求中您指定將在部分中上傳之整合封存的位元組範圍。您也可以平行上傳這些部分。您可以上傳多達 10,000 個部分的分段上傳。

如需有關分段上傳的資訊,請參閱上傳分段中的大型封存 (分段上傳)

如果以下情況為 true 時,Amazon S3 Glacier (S3 Glacier) 會拒絕上傳部分請求:

  • SHA256 樹雜湊不相符:為確保部分資料不會在傳輸時毀損,您運算該部分的 SHA256 樹雜湊並將其包含在請求中。在收到該部分資料時,S3 Glacier 也會運算 SHA256 樹雜湊。如果兩個雜湊值不相符,操作就會失敗。如需有關運算 SHA256 樹雜湊的資訊,請參閱 運算檢查總和

  • SHA256 線性雜湊不相符:由於授權需要,您運算整個上傳承載的 SHA256 線性雜湊,並將其包含在請求中。如需有關運算 SHA256 線性雜湊的資訊,請參閱運算檢查總和

  • 部分大小不相符:每個部分 (最後部分除外) 的大小,必須符合在對應的 啟動分段上傳 (POST 分段 - 上傳) 請求中所指定的大小。最後分段的大小必須與指定的大小相同或小於指定的大小。

    注意

    如果您所上傳分段的大小小於在起始分段上傳請求中所指定的分段大小,而且該分段不是最後一個分段,則上傳分段請求將會成功。不過,後續的「完成分段上傳」請求將會失敗。

  • 範圍不符合:請求中的位元組範圍值,不符合對應的起始請求中所指定的部分大小。例如,如果您指定 4194304 位元組 (4 MB) 的分段大小,則 0 到 4194303 位元組 (4 MB -1) 和 4194304 (4 MB) 到 8388607 (8 MB -1) 是有效的分段範圍。不過,如果您設定範圍值為 2 MB 到 6 MB,範圍就不符合分段大小且上傳將會失敗。

此為等冪操作。如果您多次上傳相同的分段,最新請求中所包含的資料會覆寫之前上傳的資料。

請求

您傳送此 HTTP PUT 請求至由您起始分段上傳請求所傳回的上傳 ID 的 URI。S3 Glacier 使用上傳 ID,來建立分段上傳與特定部分上傳之間的關聯。請求必須包含分段資料的 SHA256 樹雜湊 (x-amz-SHA256-tree-hash 標頭)、整個承載的 SHA256 線性雜湊 (x-amz-content-sha256 標頭)、位元組範圍 (Content-Range 標頭),以及以位元組表示的分段長度 (Content-Length 標頭)。

語法

PUT /AccountId/vaults/VaultName/multipart-uploads/uploadID HTTP/1.1 Host: glacier.Region.amazonaws.com Date: Date Authorization: SignatureValue Content-Range: ContentRange Content-Length: PayloadSize Content-Type: application/octet-stream x-amz-sha256-tree-hash: Checksum of the part x-amz-content-sha256: Checksum of the entire payload x-amz-glacier-version: 2012-06-01

注意

AccountId 值是擁有該文件庫之帳戶的 AWS 帳戶 ID。您可以指定 AWS 帳戶 ID 或選擇性使用 '-' (連字號),在這種情況下,Amazon S3 會使用與用於簽署請求之憑證關聯的 AWS 帳戶 ID。如果您使用帳號 ID,請勿在 ID 中包含任何連字號 ('-')。

請求參數

此操作不使用請求參數。

請求標頭

除了所有操作通用的請求標頭之外,此操作還會使用下列請求標頭。如需常見請求標頭的資訊,請參閱常見請求標題

名稱 描述 必要
Content-Length

識別以位元組表示的分段長度。

類型:字串

預設:無

限制條件:無

Content-Range

識別在此分段將上傳之整合封存的位元組範圍。S3 Glacier 使用此資訊以正確的順序組合封存。此標頭的格式遵循 RFC 2616。範例標頭為 Content-Range:bytes 0-4194303/*

類型:字串

預設:無

限制條件:範圍不得大於您在起始分段上傳時所指定的分段大小。

x-amz-content-sha256

所上傳承載的 SHA256 檢查總和 (線性雜湊)。這與您在 x-amz-sha256-tree-hash 標頭中指定的值不同。

類型:字串

預設:無

限制條件:無

x-amz-sha256-tree-hash

指定將上傳之資料的 SHA256 樹雜湊。如需有關運算 SHA256 樹雜湊的資訊,請參閱 運算檢查總和

類型:字串

預設:無

限制條件:無

請求主體

請求內文包含要上傳的資料。

回應

成功上傳部分時,S3 Glacier 傳回 204 No Content 的回應。

語法

HTTP/1.1 204 No Content x-amzn-RequestId: x-amzn-RequestId Date: Date x-amz-sha256-tree-hash: ChecksumComputedByAmazonGlacier

回應標頭

成功的回應除了所有操作通用的回應標頭之外,還包含下列回應標頭。如需常見回應標頭的詳細資訊,請參閱常見回應標頭

名稱 描述
x-amz-sha256-tree-hash

S3 Glacier 為上傳的部分所運算的 SHA256 樹雜湊。

類型:字串

回應內文

此操作不會傳回任何回應內文。

範例

以下請求上傳 4 MB 的分段。請求會設定位元組範圍以將此成為封存的第一個分段。

範例請求

範例傳送 HTTP PUT 請求以上傳 4 MB 的分段。請求是傳送至由起始分段上傳請求所傳回之上傳 ID 的 URI。Content-Range 標頭將分段識別為封存的第一個 4 MB 資料分段。

PUT /-/vaults/examplevault/multipart-uploads/OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE HTTP/1.1 Host: glacier.us-west-2.amazonaws.com Date: Wed, 10 Feb 2017 12:00:00 GMT Content-Range:bytes 0-4194303/* x-amz-sha256-tree-hash:c06f7cd4baacb087002a99a5f48bf953 x-amz-content-sha256:726e392cb4d09924dbad1cc0ba3b00c3643d03d14cb4b823e2f041cff612a628 Content-Length: 4194304 Authorization: Authorization=AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20141123/us-west-2/glacier/aws4_request,SignedHeaders=host;x-amz-content-sha256;x-amz-date;x-amz-glacier-version,Signature=16b9a9e220a37e32f2e7be196b4ebb87120ca7974038210199ac5982e792cace

若要上傳下一個分段,程序是相同的;不過,您必須計算要上傳分段的新 SHA256 樹雜湊,也可以指定新的位元組範圍,以指出分段將進入最終組件的哪裡。以下請求會上傳使用相同上傳 ID 的另一個分段。請求指定之前請求之後的下一個 4 MB 封存和 4 MB 的分段大小。

PUT /-/vaults/examplevault/multipart-uploads/OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE HTTP/1.1 Host: glacier.us-west-2.amazonaws.com Date: Wed, 10 Feb 2017 12:00:00 GMT Content-Range:bytes 4194304-8388607/* Content-Length: 4194304 x-amz-sha256-tree-hash:f10e02544d651e2c3ce90a4307427493 x-amz-content-sha256:726e392cb4d09924dbad1cc0ba3b00c3643d03d14cb4b823e2f041cff612a628 x-amz-glacier-version: 2012-06-01 Authorization: Authorization=AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20120525/us-west-2/glacier/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date;x-amz-glacier-version, Signature=16b9a9e220a37e32f2e7be196b4ebb87120ca7974038210199ac5982e792cace

可以任何順序上傳部分;S3 Glacier 對於每個部分會使用範圍規格,以決定組合部分的順序。

回應範例

HTTP/1.1 204 No Content x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q x-amz-sha256-tree-hash: c06f7cd4baacb087002a99a5f48bf953 Date: Wed, 10 Feb 2017 12:00:00 GMT