本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
取得複寫狀態資訊
複寫狀態可協助您判斷要複寫之物件的目前狀態。來源物件的複寫狀態將會傳回 PENDING
、COMPLETED
或 FAILED
。複本的複寫狀態將會傳回 REPLICA
。
複寫狀態概觀
在複寫中,您有一個來源儲存貯體,您可以在其上設定複寫與 Amazon S3 複寫物件的目的地。當您從這些儲存貯體請求物件 (使用 GET
物件) 或物件中繼資料 (使用 HEAD
物件) 時,Amazon S3 會在回應中傳回 x-amz-replication-status
標頭:
-
當您從來源儲存貯體請求物件時,如果請求中的物件符合複寫資格,Amazon S3 即會傳回
x-amz-replication-status
標頭。例如,假設您在複寫組態中指定物件前綴
TaxDocs
,告知 Amazon S3 複寫僅具有金鑰名稱前綴TaxDocs
的物件。系統會複寫您上傳且具有此金鑰名稱前綴 (例如TaxDocs/document1.pdf
) 的任何物件。針對具有此金鑰名稱前綴的物件請求,Amazon S3 會傳回x-amz-replication-status
標頭,以及代表物件複寫狀態的下列其中一個值:PENDING
、COMPLETED
或FAILED
。注意
若物件複寫在您上傳完物件後失敗,則您無法重試複寫。您必須再次上傳物件。對於缺少複寫角色許可、 AWS KMS 許可,或儲存貯體許可等問題,物件會轉換成
FAILED
狀態。對於暫時性錯誤,例如,如果儲存貯體或區域無法使用,複寫狀態將不會轉換成FAILED
,但會保持PENDING
。資源恢復線上狀態後,S3 將繼續複寫這些物件。 -
當您從目的地儲存貯體請求物件時,如果您請求中的物件是 Amazon S3 建立的複本,Amazon S3 會傳回值為
REPLICA
的x-amz-replication-status
標頭。
注意
在從已啟用複寫的來源儲存貯體中刪除物件之前,您應該先檢查物件的複寫狀態,確保已複寫物件。
如果已啟用來源儲存貯體上的生命週期組態,Amazon S3 會暫停生命週期動作,直到將物件狀態標示為 COMPLETED
或 FAILED
為止。
複寫至多個目的地儲存貯體時的複寫狀態
當您將物件複寫至多個目的地儲存貯體時,x-amz-replication-status
標頭的運作方式會有所不同。成功複寫至所有目的地時,來源物件的標頭只會傳回 COMPLETED
的值。標頭會保留在 PENDING
值,直到對所有目的地的複寫完成為止。如果一或多個目的地複寫失敗,標頭會傳回 FAILED
。
啟用 Amazon S3 複本修改同步時的複寫狀態
當您的複寫規則啟用 Amazon S3 複本修改同步時,複本可以報告 REPLICA
以外的狀態。如果中繼資料變更正在複寫過程中,則 x-amz-replication-status
標頭會傳回 PENDING
。如果複本修改同步無法複寫中繼資料,則標頭會傳回 FAILED
。如果中繼資料正確複寫,複本將會傳回標頭 REPLICA
。
尋找複寫狀態
若要取得儲存貯體中物件的複寫狀態,您可使用 Amazon S3 庫存工具。Amazon S3 會將 CSV 檔案傳送到您在庫存組態中指定的目的地儲存貯體。您也可以使用 Amazon Athena,來查詢庫存報告中的複寫狀態。如需 Amazon S3 庫存的詳細資訊,請參閱 Amazon S3 清查。
您也可以使用主控台、 AWS Command Line Interface (AWS CLI) 或 AWS SDK 尋找物件複寫狀態。
在 S3 主控台中,您可以在 Object management overview (物件管理概觀) 下的物件 Details (詳細資訊) 頁面上檢視物件的複寫狀態。
-
登入 AWS Management Console 並開啟 Amazon S3 主控台,網址為 https://console.aws.amazon.com/s3/
。 -
在 Buckets (儲存貯體) 清單中,選擇您的儲存貯體名稱。
-
在 Objects (物件) 清單中,選擇物件名稱。
-
在 Properties (屬性) 下尋找 Object management overview (物件管理概觀),您可以在這裡看到 Replication status (複寫狀態)。
使用 head-object
命令來擷取物件中繼資料,如下所示。
aws s3api head-object --bucket
source-bucket
--keyobject-key
--version-idobject-version-id
此命令會傳回物件中繼資料,包括 ReplicationStatus
,如下列範例回應所示。
{ "AcceptRanges":"bytes", "ContentType":"image/jpeg", "LastModified":"Mon, 23 Mar 2015 21:02:29 GMT", "ContentLength":3191, "ReplicationStatus":"COMPLETED", "VersionId":"jfnW.HIMOfYiD_9rGbSkmroXsFj3fqZ.", "ETag":"\"6805f2cfc46c0f04559748bb039d69ae\"", "Metadata":{ } }
下列程式碼片段會分別取得與 AWS SDK for Java 和 AWS SDK for .NET的複寫狀態。