完成分段上傳 (POST 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 儲存類別和存檔物件的儲存類別。

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

完成分段上傳 (POST uploadID)

描述

您呼叫此分段上傳操作以通知 Amazon S3 Glacier (S3 Glacier) 所有封存部分均已上傳,而且 S3 Glacier 現在可以將上傳的部分組合封存。

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

在將封存整合並儲存到文件庫後,S3 Glacier 會傳回新建封存資源的封存 ID。上傳封存後,應該儲存傳回的封存 ID 以便稍後擷取封存。

在請求中,必須包括已上傳的整個封存的計算 SHA256 樹雜湊。如需有關運算 SHA256 樹雜湊的資訊,請參閱 運算檢查總和。在伺服器端,S3 Glacier 也會建構組合封存的 SHA256 樹雜湊。如果值相符,S3 Glacier 會將封存儲存到文件庫,否則其會傳回錯誤,而且操作會失敗。此 清單部分 (GET uploadID) 操作會傳回為特定的分段上傳所上傳的組件清單。其中包含每個上傳部分的檢查總和資訊,可用於偵測錯誤的檢查總和問題。

此外,S3 Glacier 還會檢查任何遺漏的內容範圍。上傳部分時,可指定範圍值,以識別每個部分所適合在該封存中的最終整合位置。在為任何遺漏的內容範圍組合最終封存 S3 Glacier 檢查時,如果有任何遺漏的內容範圍,S3 Glacier 會傳回錯誤,而完整分段上傳操作將失敗。

完整分段上傳是等冪操作。在您首次成功完整分段上傳後,如果在短時間內再次呼叫該操作,該操作將成功並傳回相同的封存 ID。這在遇到網路問題或收到 500 伺服器錯誤時非常有用,在這種情況下,您可以重複完整分段上傳請求,並在不建立重複封存的情況下獲得相同的封存 ID。但是請注意,在分段上傳完成後,您無法呼叫清單組件操作,並且分段上傳不會出現在清單分段上傳回應中,即使冪等完整也是如此。

請求

若要完成分段上傳,請將 HTTP POST 請求傳送到 S3 Glacier 為回應初始分段上傳請求而建立之上傳 ID 的 URI。這與上傳組件時使用的 URI 相同。除了常見的必要標頭外,還必須包括整個封存的 SHA256 樹雜湊結果和封存的總大小 (以位元組為單位)。

語法

POST /AccountId/vaults/VaultName/multipart-uploads/uploadID Host: glacier.Region.amazonaws.com Date: date Authorization: SignatureValue x-amz-sha256-tree-hash: SHA256 tree hash of the archive x-amz-archive-size: ArchiveSize in bytes x-amz-glacier-version: 2012-06-01

注意

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

請求參數

此操作不使用請求參數。

請求標頭

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

名稱 描述 必要
x-amz-archive-size

整個封存的總大小 (以位元組為單位)。這個值應該是您上傳的個別組件的所有大小的總和。

類型:字串

預設:無

限制條件:無

x-amz-sha256-tree-hash

整個封存的 SHA256 樹雜湊。它是個別組件的 SHA256 樹雜湊的樹雜湊。如果在請求中指定的值與 S3 Glacier 計算的最終組合封存的 SHA256 樹雜湊值不相符,則 S3 Glacier 會傳回錯誤,請求會失敗。

類型:字串

預設:無

限制條件:無

要求元素

此操作不使用請求元素。

回應

Amazon S3 Glacier (S3 Glacier) 建立整個封存的 SHA256 樹雜湊。如果該值與您在請求中指定的整個封存 SHA256 樹雜湊相符,則 S3 Glacier 會將封存新增到文件庫中。在回應中,會傳回具有新增的封存資源的 URL 路徑的 HTTP Location 標頭。如果您在請求中傳送的封存大小或 SHA256 不相符,則 S3 Glacier 將傳回錯誤,而且上傳仍處於未完成狀態。稍後可以使用正確的值重試完整分段上傳操作,此時您可以成功建立封存。如果分段上傳未完成,則最終 S3 Glacier 將回收上傳 ID。

語法

HTTP/1.1 201 Created x-amzn-RequestId: x-amzn-RequestId Date: Date Location: Location x-amz-archive-id: ArchiveId

回應標頭

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

名稱 描述
Location

新建立的封存的相對 URI 路徑。此 URL 包含 S3 Glacier 所產生的封存 ID。

類型:字串

x-amz-archive-id

此封存的 ID。此值也包含在 Location 標頭中。

類型:字串

回應欄位

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

範例

範例請求

在這個範例中,HTTP POST 請求被傳送到由初始分段上傳請求傳回的 URI。該請求同時指定整個封存的 SHA256 樹雜湊和總封存大小。

POST /-/vaults/examplevault/multipart-uploads/OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE HTTP/1.1 Host: glacier.us-west-2.amazonaws.com z-amz-Date: 20170210T120000Z x-amz-sha256-tree-hash:1ffc0f54dd5fdd66b62da70d25edacd0 x-amz-archive-size:8388608 x-amz-glacier-version: 2012-06-01 Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20141123/us-west-2/glacier/aws4_request,SignedHeaders=host;x-amz-date;x-amz-glacier-version,Signature=9257c16da6b25a715ce900a5b45b03da0447acf430195dcb540091b12966f2a2

回應範例

以下範例回應示範 S3 Glacier 已成功從您上傳的部分中建立封存。該回應包含具有完整路徑的封存 ID。

HTTP/1.1 201 Created x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q Date: Wed, 10 Feb 2017 12:00:00 GMT Location: /111122223333/vaults/examplevault/archives/NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId x-amz-archive-id: NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId

您現在可以將 HTTP 請求傳送到新增的資源/封存的 URI。例如,您可以傳送 GET 請求以擷取封存。