跳至內容

如何還原 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 儲存類別中的大量 Amazon S3 物件?

3 分的閱讀內容
0

我想還原大量 Amazon Simple Storage Service (Amazon S3) 物件。Amazon S3 物件位於 Glacier Flexible Retrieval 或 Amazon S3 Glacier Deep Archive 儲存類別中。

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

若要還原大量 Amazon S3 Glacier 儲存類別物件,請使用 Amazon S3 Batch Operations 或自訂 AWS CLI 命令。

使用 S3 Batch Operations

建立 S3 Batch Operations 作業以還原所有物件。您可以在自訂物件清單或 Amazon S3 庫存報告上執行還原作業

先決條件

確認以下事項:

若要使用 Amazon S3 主控台建立批次操作作業並啟動還原,請完成以下步驟:

  1. 開啟 Amazon S3 console (Amazon S3 主控台)。
  2. 在導覽窗格中,選擇 Batch operations (批次操作)。
  3. 選擇 Create job (建立作業)。
  4. Region (區域),選取您要建立作業的 AWS 區域。
  5. Choose manifest (選擇資訊清單) 下,輸入以下項目:
    Manifest format (資訊清單格式),選取 S3 inventory report (S3 庫存報告) 或 CSV 作為您的檔案格式。
    Path to manifest object (資訊清單物件的路徑),輸入 S3 儲存貯體中資訊清單檔案的資料夾路徑,例如 s3://awsexamplebucket/manifest.csv
  6. 選擇 Next (下一步)。
  7. Choose operation (選擇操作) 下,輸入以下項目:
    Operation (操作),選擇 Restore (還原)。
    Restore source (還原來源),選擇 Glacier Flexible RetrievalGlacier Deep Archive
    Number of days that the restored copy is available (還原複本可用的天數),輸入天數。
    Restore tier (還原層級),選擇 Bulk retrieval (大量擷取) 或 Standard retrieval (標準擷取)。
    注意:S3 Batch Operations 不支援快速擷取層級。
  8. 選擇 Next (下一步)。
  9. Configure additional options (設定其他選項) 下,輸入以下項目:
    (選用) 在 Description (描述),輸入描述。
    Priority (優先順序),輸入作業優先順序的數字。
    Generate completion report (產生完成報告),保持選取此選項。
    Completion report scope (完成報告範圍),選擇 Failed tasks only (僅失敗的任務) 或 All tasks (所有任務)。
    Path to completion report destination (完成報告目的地路徑),輸入您要傳送報告的路徑。
    Permission (權限),選擇 Choose from existing IAM roles (從現有 IAM 角色選擇),然後選取具有必要權限的 IAM 角色。
  10. 選擇 Next (下一步)。
  11. Review (檢閱) 頁面上,檢閱作業詳細資訊,然後選擇 Create job (建立作業)。
  12. 選取作業,然後選擇 Confirm and run (確認並執行)。
  13. (選用) 如果您選取 Generate completion report (產生完成報告),則在作業完成後檢閱報告。您可以在您指定的完成報告目的地路徑找到報告。

如需每種作業狀態的描述,請參閱作業狀態

重要:****還原作業只會啟動還原物件的請求。啟動請求後,S3 Batch Operations 會回報物件的作業完成。批次操作作業還原物件後,Amazon S3 不會更新作業或通知您。不過,您可以使用 Amazon S3 Event Notifications,在物件可於 Amazon S3 中使用時接收通知。

如需失敗作業的詳細資訊,請參閱追蹤作業失敗

使用自訂 AWS CLI 命令

若要從 S3 Glacier 儲存類別還原大量資料,請使用以下與您作業系統 (OS) 對應的自訂命令。

**注意:**最佳實務是先在非生產環境中測試自訂指令碼,然後再於生產環境中使用。如果您的物件太多,命令可能會逾時。在命令中使用 Prefix 參數,以減少物件數量。

對於 Linux 或 Unix 型系統

您可以執行 AWS CLI restore-object 命令來還原 Amazon S3 Glacier 物件。不過,restore-object 命令一次只能還原一個 S3 Glacier 物件,且不支援大量還原動作。

執行以下 list-objects-v2 命令,以還原儲存貯體中的所有 S3 Glacier 物件:

`` aws s3api list-objects-v2 --bucket bucket-name --prefix your-prefix --query 'Contents[?StorageClass==`GLACIER`][Key]' --output text | xargs -I {} sh -c "aws s3api restore-object --bucket bucket-name --key \"{}\" --restore-request Days=5,GlacierJobParameters={Tier=Standard} || true"``

**注意:**將 bucket-name 替換為您的 S3 儲存貯體名稱,將 your-prefix 替換為您的 Amazon S3 資料夾路徑,並將 StorageClass 值替換為 GLACIERDEEP_ARCHIVE

對於 Windows 型系統

以下自訂 AWS CLI 命令會對列出和資料擷取請求產生額外費用。因為 list-objects-v2 API 呼叫是分頁操作,所以多個 API 呼叫會擷取完整結果資料集。

請完成以下步驟:

  1. 執行以下 list-objects-v2 命令,以列出儲存貯體中的所有 S3 Glacier 物件:

    `` aws s3api list-objects-v2 --bucket bucket-name --prefix your-prefix --query "Contents[?StorageClass==`GLACIER`][Key]" --output text > list.txt``
  2. 執行 restore-object 命令,以還原 S3 Glacier 物件:

    ` for /F "tokens=*" %i in (list.txt) do @aws s3api restore-object --bucket bucket-name --key "%i" --restore-request Days=5,GlacierJobParameters={Tier=Standard} || true"`

    **注意:**您可以執行 AWS CLI restore-object 命令來還原 Amazon S3 Glacier 物件。不過,restore-object 命令一次只能還原一個 S3 Glacier 物件,且不支援大量還原動作。

相關資訊

了解封存擷取選項

使用 Batch Operations 大量執行物件操作

管理 S3 Batch Operations 作業

AWS 官方已更新 7 個月前