使用 AWS CLI 下載 Amazon S3 Glacier 中的封存 - Amazon S3 Glacier

此頁面僅適用於使用保管庫和 2012 年起原始 REST API 的 S3 冰川服務的現有客戶。

如果您正在尋找存檔儲存解決方案,我們建議您使用 Amazon S3 中的 S3 Glacier 儲存類別、S3 冰川即時擷取S3 冰川彈性擷取和 S3 Glacier Deep Archive。若要進一步了解這些儲存選項,請參閱 Amazon S3 使用者指南中的 S3 Glacier 儲存類別和使用 S3 Glacier 儲存類別的長期資料儲存。這些儲存類別使用 Amazon S3 API,可在所有區域使用,並且可以在 Amazon S3 主控台中管理。它們提供了諸如存儲成本分析,存儲鏡頭,包括多種加密選項的安全功能等功能。

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

使用 AWS CLI 下載 Amazon S3 Glacier 中的封存

您可以使用 AWS Command Line Interface (AWS CLI),在 Amazon S3 Glacier (S3 Glacier) 中下載封存。

(必要條件) 設定 AWS CLI

  1. 下載和設定 AWS CLI。如需說明,請參閱《AWS Command Line Interface 使用者指南》中的下列主題:

    安裝 AWS Command Line Interface

    設定 AWS Command Line Interface

  2. 在命令提示字元中輸入下列命令,以驗證 AWS CLI 設定。這些命令不會明確提供登入資料,因此會使用預設描述檔的登入資料。

    • 嘗試使用幫助命令。

      aws help
    • 若要取得已設定帳戶上 S3 Glacier 文件庫的清單,請使用 list-vaults 命令。將 123456789012 替換為 AWS 帳戶 ID。

      aws glacier list-vaults --account-id 123456789012
    • 若要查看 AWS CLI 目前的設定資料,請使用 aws configure list 命令。

      aws configure list

範例:使用 AWS CLI 下載封存

注意

為了下載封存,您必須知道封存 ID。步驟 1-4 將擷取封存 ID。如果您已經知道要下載的封存 ID,請跳至步驟 5。

  1. 使用 initiate-job 命令開始庫存擷取任務。庫存報告將列出封存 ID。

    aws glacier initiate-job --vault-name awsexamplevault --account-id 111122223333 --job-parameters="{\"Type\":\"inventory-retrieval\"}"

    預期的輸出結果:

    { "location": "/111122223333/vaults/awsexamplevault/jobs/*** jobid ***", "jobId": "*** jobid ***" }
  2. 使用 describe-job 命令檢查先前 任務命令的狀態。

    aws glacier describe-job --vault-name awsexamplevault --account-id 111122223333 --job-id *** jobid ***

    預期的輸出結果:

    { "InventoryRetrievalParameters": { "Format": "JSON" }, "VaultARN": "*** vault arn ***", "Completed": false, "JobId": "*** jobid ***", "Action": "InventoryRetrieval", "CreationDate": "*** job creation date ***", "StatusCode": "InProgress" }
  3. 等候任務完成。

    您必須等到任務輸出準備好供您下載。如果您在文件庫上設定通知設定,或者在起始任務時指定 Amazon Simple Notification Service (Amazon SNS) 主題,則 S3 Glacier 會在完成任務後向該主題傳送訊息。

    您可以為文件庫中的特定事件設定通知組態。如需更多詳細資訊,請參閱 在 Amazon S3 Glacier 中設定文件庫通知。無論何時發生特定事件,S3 Glacier 都會傳送訊息到指定的 SNS 主題。

  4. 完成時,請使用 get-job-output 命令將擷取任務下載至檔案 output.json。該檔案將包含封存 ID。

    aws glacier get-job-output --vault-name awsexamplevault --account-id 111122223333 --job-id *** jobid *** output.json

    這個命令會產生一個包含下列欄位的檔案。

    { "VaultARN":"arn:aws:glacier:region:111122223333:vaults/awsexamplevault", "InventoryDate":"*** job completion date ***", "ArchiveList":[ {"ArchiveId":"*** archiveid ***", "ArchiveDescription":*** archive description (if set) ***, "CreationDate":"*** archive creation date ***", "Size":"*** archive size (in bytes) ***", "SHA256TreeHash":"*** archive hash ***" } {"ArchiveId": ... ]}
  5. 使用 initiate-job 命令,從文件庫開始每個封存的擷取程序。您將需要將任務參數指定為 archive-retrieval,如下所示。

    aws glacier initiate-job --vault-name awsexamplevault --account-id 111122223333 --job-parameters="{\"Type\":\"archive-retrieval\",\"ArchiveId\":\"*** archiveId ***\"}"
  6. 等候 archive-retrieval 任務完成。使用 describe-job 命令檢查先前命令的狀態。

    aws glacier describe-job --vault-name awsexamplevault --account-id 111122223333 --job-id *** jobid ***
  7. 當上述任務完成後,使用 get-job-output 命令下載封存。

    aws glacier get-job-output --vault-name awsexamplevault --account-id 111122223333 --job-id *** jobid *** output_file_name