在設定從一個 Amazon Simple Storage Service (Amazon S3) 儲存貯體到另一個儲存貯體的複寫時,我想要擷取複寫失敗的物件清單。
簡短描述
您可以開啟 S3 複寫時間控制 (S3 RTC),為複寫失敗的合格物件設定事件通知。您也可以使用 S3 RTC 為複寫時間超過 15 分鐘的合格物件設定通知。此外,您可以使用下列其中一種方式取得複寫失敗的物件清單:
- 查看 Amazon S3 庫存報告
- 運行 HeadObject API 調用
解決方案
Amazon S3 庫存報告
Amazon S3 庫存報告會每天或每週列出您的物件及其中繼資料。物件的複寫狀態可以是「擱置中」、「已完成」、「失敗」或「複寫」。
若要尋找複寫失敗的物件,請針對複寫狀態為「失敗」的物件篩選最近的報告。然後,您可以將物件手動複寫到目的地儲存貯體。您也可以將物件重新上載至來源儲存貯體 (在修正權限之後),以啟動複寫。
您也可以使用 Amazon Athena 查詢複寫狀態的庫存報告。
HeadObject 調用
如需來源儲存貯體中設定用於複寫的物件清單,您可以在物件上執行 HeadObject API 調用。HeadObject 會傳回物件的「待處理」、「已完成」或「失敗」複寫狀態。在 HeadObject API 調用的響應中,複寫狀態在 x-amz-replication-status元素中找到。
**注意:**要運行 HeadObject,您必須具有對所請求物件的讀取權限。HEAD 請求與 GET 請求具有相同的選項,但不執行 GET。
HeadObject 傳回複寫狀態為「失敗」的物件之後,您可以將物件手動複寫到目的地儲存貯體。您也可以將物件重新上載至來源儲存貯體 (在修正權限之後),以啟動複寫。
**重要事項:**如果您手動將物件複寫到目的地儲存貯體,則 Amazon S3 庫存報告和 HeadObject API 呼叫會傳回失敗的複寫狀態。此複寫狀態適用於來源儲存貯體中的物件。若要變更物件的複寫狀態並啟動複寫,您必須將物件重新上傳至來源儲存貯體。如果新複寫成功,則物件的複寫狀況會變更為「已完成」。如果您必須手動將物件複寫到目的地儲存貯體,請務必記下手動複寫的日期。然後,依上次修改日期篩選具有「失敗」複寫狀態的物件。這麼做可讓您識別哪些物件已複寫或未複寫到目的地儲存貯體。