使用 AWS CLI 在 Amazon S3 Glacier 中下载档案 - Amazon S3 Glacier

此页面仅适用于使用保管库的 S3 Glacier 服务的现有客户以及 2012 年以RESTAPI来的原始客户。

如果您正在寻找档案存储解决方案,我们建议您在亚马逊 S3、S3 Glacier 即时检索、S3 Glacier 灵活检索和 S3 Glacier Deep Archive Dee p Archive 中使用 S3 Glacier 存储类。要了解有关这些存储选项的更多信息,请参阅 Amazon S3 用户指南中的 S3 Glacier 存储类和使用 S3 Glacier 存储类的长期数据存储。这些存储类别使用 Amazon S3API,适用于所有区域,并且可以在 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 设置。这些命令没有显式提供凭证,因此将使用默认配置文件的凭证。

    • 尝试使用 help 命令。

      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