如何使用 AWS CLI 從 S3 Glacier Flexible Retrieval或 S3 Glacier Deep Archive 儲存類別還原 Amazon S3 物件?

2 分的閱讀內容
0

我使用生命週期組態,將 Amazon Simple Storage Service (Amazon S3) 物件存檔至 Amazon S3 Glacier Flexible Retrieval (以前稱為 Glacier) 或 Amazon S3 Glacier Deep Archive 儲存類別。我想要使用 AWS Command Line Interface (AWS CLI) 還原物件。

解決方案

使用下列步驟,使用 AWS CLI 從 S3 Glacier Flexible Retrieval 儲存或 S3 Glacier Deep Archive 類別還原 S3 物件。

**注意:**如果您在執行 AWS CLI 命令時收到錯誤訊息,請確定您使用的是最新的 AWS CLI 版本

啟動還原要求

執行下列命令以啟動還原要求。請務必將範例命令中的所有值取代為儲存貯體、物件和還原要求的值。

**注意:**由於資料擷取費用是根據請求數量而定,因此請務必確認還原請求的參數是否正確。

$ aws s3api restore-object --bucket awsexamplebucket --key dir1/example.obj --restore-request '{"Days":25,"GlacierJobParameters":{"Tier":"Standard"}}'

執行此命令之後,物件的暫時複本會在還原要求中指定的持續時間內使用。在此範例中,還原請求中指定的持續時間為 25 天,而還原層設定為 S3 標準。

請注意您可以對指令進行的下列修改:

  • 若要還原已建立版本的儲存貯體中的特定物件版本,請包含**-Version-id** 選項,然後指定對應的版本 ID。
  • 對於S3 Glacier Flexible Retrieval 儲存類別,您可以使用快速、標準或大量擷取選項。不過,您只能針對 S3 Glacier Deep Archive 儲存類別使用標準或大量擷取選項。
  • 如果範例中使用的 JSON 語法導致 Windows 用戶端發生錯誤,請使用下列語法取代還原要求:
--restore-request Days=25,GlacierJobParameters={"Tier"="Standard"}

**注意:**如果物件存放在 S3 Glacier 即時擷取中,則資料擷取是即時的,不需要進行還原作業。如需詳細資訊,請參閱 Amazon S3 儲存類別

監控還原要求的狀態

執行下列命令以監視還原要求的狀態:

aws s3api head-object --bucket awsexamplebucket --key dir1/example.obj

如果執行命令之後還原仍在進行中,您會收到類似下列內容的回應:

{
    "Restore": "ongoing-request=\"true\"",
    ...
    "StorageClass": "GLACIER | DEEP_ARCHIVE",
    "Metadata": {}
}

還原完成後,您會收到類似下列內容的回應:

{
    "Restore": "ongoing-request=\"false\", expiry-date=\"Sun, 13 Aug 2017 00:00:00 GMT\"",
    ...
    "StorageClass": "GLACIER | DEEP_ARCHIVE",
    "Metadata": {}
}

請注意回應中的到期日期—您必須在此之前存取暫時儲存區物件 (儲存在「低冗餘儲存體」類別中)。暫存物件可與 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 儲存類別中的封存物件一起使用。到期日期之後,臨時物件被刪除。您必須在臨時物件到期之前變更物件的儲存區類別。若要在到期日期之後變更物件的儲存區類別,您必須起始新的還原要求。

將物件的儲存類別變更為 Amazon S3 標準

若要將物件的儲存類別變更為 Amazon S3 標準,請使用複製。您可以覆寫既有物件或將物件複製到其他位置。

**警告:**如果您使用的是 AWS CLI 的 1.x 版,在複製物件之前,請確定將多部分臨界值設定為 5 GB。否則,當物件大小大於 AWS CLI 的多部分閾值時,物件的使用者中繼資料會遺失。對於大於 5 GB 的物件,請使用 AWS CLI 的 2.x 版保留使用者中繼資料。

(選擇性) 若要增加 AWS CLI 的多部分臨界值,請執行以下命令:

aws configure set default.s3.multipart_threshold 5GB

若要使用 Amazon S3 標準儲存類別覆寫現有物件,請執行下列命令:

aws s3 cp s3://awsexamplebucket/dir1/example.obj s3://awsexamplebucket/dir1/example.obj --storage-class STANDARD

若要對整個前綴執行遞迴複製,並使用 Amazon S3 標準儲存類別覆寫現有物件,請執行下列命令:

aws s3 cp s3://awsexamplebucket/dir1/ s3://awsexamplebucket/dir1/ --storage-class STANDARD --recursive --force-glacier-transfer

注意: 存檔至 S3 Glacier Flexible Retrieval 的物件最短儲存持續時間為 90 天。存檔至 S3 Glacier Deep Archive 的物件最短儲存持續時間為 180 天。如果您在最少 90 天之前覆寫 S3 Glacier Flexible Retrieval 中的物件,則需支付 90 天的費用。同樣地,S3 Glacier Deep Archive 中的物件會在最少 180 天之前覆寫,您需支付 180 天的費用。

若要將物件複製到其他位置,請執行下列命令:

aws s3 cp s3://awsexamplebucket/dir1/example.obj s3://awsexamplebucket/dir2/example2.obj

注意: 對於暫停的儲存貯體或已啟用版本控制的儲存貯體,此步驟會建立其他物件複本。這些額外的物件也會產生儲存成本。若要避免儲存成本,請移除仍在 Amazon S3 Glacier 儲存類別中的非最新版本,或建立 S3 生命週期到期規則


相關資訊

如何為目前位於 S3 Glacier 或 S3 Glacier Deep Archive 儲存類別中的大量 Amazon S3 物件啟動還原?

如何使用 Amazon S3 主控台中的還原層從 Amazon S3 Glacier 儲存類別還原存檔物件?

還原封存的物件

管理儲存生命週期

AWS 官方
AWS 官方已更新 2 年前