Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
如何還原 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 儲存類別中的大量 Amazon S3 物件?
我想還原大量 Amazon Simple Storage Service (Amazon S3) 物件。Amazon S3 物件位於 Glacier Flexible Retrieval 或 Amazon S3 Glacier Deep Archive 儲存類別中。
解決方法
若要還原大量 Amazon S3 Glacier 儲存類別物件,請使用 Amazon S3 Batch Operations 或自訂 AWS Command Line Interface (AWS CLI) 命令。
注意: 如果您在執行 AWS CLI 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
使用 S3 Batch Operations
建立 S3 Batch Operations 工作來還原所有物件。您可以對自訂物件清單或 Amazon S3 庫存清單報告執行還原工作。
先決條件:
- 查看 Batch Operations 的 Amazon S3 定價。
- 您擁有具有還原物件權限的 AWS Identity and Access Management (IAM) 使用者或角色。IAM 使用者或角色也必須擁有 Amazon S3 Batch Operations 的信任政策。
- 您有 .csv 檔案或 Amazon S3 庫存清單,可作為您要還原之物件的資訊清單。將資訊清單檔案儲存在 S3 儲存貯體中。如需詳細資訊,請參閱建立資訊清單檔案。
若要使用 Amazon S3 主控台建立批次作業工作並啟動還原,請完成下列步驟:
- 開啟 Amazon S3 主控台。
- 在導覽窗格中,選擇 Batch operations (批次作業)。
- 選擇 Create job (建立任務)。
- 對於 Region (區域),選取您要在其中建立任務的 AWS 區域。
- 在 Choose manifest (選擇資訊清單) 下,輸入以下內容:
對於 Manifest format (資訊清單格式),選取 S3 inventory report (S3 庫存清單報告) 或 CSV 作為檔案格式。
對於 Path to manifest object (資訊清單物件),輸入資訊清單檔案的 S3 路徑,例如 s3://awsexamplebucket/manifest.csv。 - 選擇 Next (下一步)。
- 在 Choose operation (選擇作業) 下,輸入以下內容:
對於 Operation (作業),選擇 Restore (還原)。
對於 Restore source (還原來源),選擇 Glacier Flexible Retrieval 或 Glacier Deep Archive。
對於 Number of days that the restored copy is available (還原副本可用的天數),輸入天數。
對於 Restore tier (還原層),選擇 Bulk retrieval (大量擷取) 或 Standard retrieval (標準擷取)。
注意:S3 Batch Operations 不支援快速擷取方案。 - 選擇 Next (下一步)。
- 在 Configure additional options (設定其他選項) 下,輸入以下內容:
(選用) 對於 Description (描述),輸入描述。
對於 Priority (優先順序) 中,輸入工作優先順序的數字。
對於 Generate completion report (產生完成報告),將此選項保持選取的狀態。
對於 Completion report scope (完成報告範圍),選擇 Failed tasks only (僅失敗的工作) 或 All tasks (所有工作)。
對於 Path to completion report destination (完成報告目的地的路徑),輸入要傳送報告的路徑。
對於 Permission (權限),選擇從現有的 IAM 角色中選擇,然後選取具有必要權限的 IAM 角色。 - 選擇 Next (下一步)。
- 在 Review (檢閱) 頁面上,檢閱任務的詳細資訊,然後選擇建立工作。
- 選取任務,然後選擇 Confirm and run (確認並執行)。
- (選用) 如果您選取 Generate completion report (產生完成報告),則會在任務完成之後檢閱報告。您可以在指定的完成報告目的地路徑找到報告。
如需每個任務狀態的描述,請參閱任務狀態。
重要: 還原工作只會啟動還原物件的請求。發起請求後,S3 Batch Operations 會報告該物件的工作已完成。批次作業工作還原物件後,Amazon S3 不會更新工作或通知您。但是,您可以使用 Amazon S3 事件通知在物件在 Amazon S3 中可用時接收通知。
如需失敗任務的詳細資訊,請參閱追蹤任務失敗。
使用自訂的 AWS CLI 命令
您可以執行 AWS CLI restore-object 命令來還原您的 Amazon S3 Glacier 物件。不過,restore-object 命令一次只能還原一個 S3 Glacier 物件,且不支援大量還原動作。
若要從 S3 Glacier 儲存類別還原大量資料,請對您的作業系統 (OS) 使用下列自訂命令。
注意: 在生產環境中使用自訂指令碼之前,最好先在非生產環境中進行測試。如果物件太多,命令可能會逾時。在命令中使用 Prefix 參數來減少物件的數量。
對於 Linux 或 Unix 系統,執行以下 list-objects 命令來還原儲存貯體中的所有 S3 Glacier 物件:
aws s3api list-objects --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 替換為您的 S3 資料夾路徑,並將 StorageClass 值替換為 GLACIER 或 DEEP_ARCHIVE。
對於 Windows 系統,請完成下列步驟:
-
執行下列 list-objects 命令,以列出儲存貯體中的所有 S3 Glacier 物件:
aws s3api list-objects --bucket bucket-name --prefix your-prefix --query "Contents[?StorageClass==`GLACIER`][Key]" --output text > list.txt
物件清單保存在名為 list.txt 的檔案中。
-
執行 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 命令會因清單和資料擷取請求,產生額外費用。由於 list-objects-v2 API 是分頁作業,因此多次 API 呼叫會檢索整個結果資料集。
相關資訊

相關內容
- 已提問 2 年前lg...
- 已提問 5 個月前lg...
- 已提問 9 個月前lg...
- AWS 官方已更新 1 年前
- AWS 官方已更新 4 年前