恢复已归档的对象 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

恢复已归档的对象

以下存储类或存储层中的 Amazon S3 对象已归档,无法实时访问:

  • S3 Glacier Flexible Retrieval 存储类

  • S3 Glacier Deep Archive 存储类

  • S3 Intelligent-Tiering 归档访问层

  • S3 Intelligent-Tiering 深度归档访问层

无法立即访问存储在 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类中的 Amazon S3 对象。要访问这些存储类中的对象,您必须在指定的持续时间(天数)内将该对象的临时副本还原到其 S3 桶。如果您想要该对象的永久副本,请还原该对象,然后在 Amazon S3 桶中创建该对象的一个副本。Amazon S3 控制台不支持复制已还原的对象。对于这种类型的复制操作,请使用 Amazon Command Line Interface(Amazon CLI)、Amazon SDK 或 REST API。除非您制作副本并更改其存储类,否则对象仍将存储在 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类中。有关使用这些存储类的信息,请参阅用于存档对象的存储类

要访问 S3 Intelligent-Tiering 归档访问层和深度归档访问层中的对象,您必须启动还原请求,并等待对象移动到频繁访问层。从归档访问层或深度归档访问层进行还原时,对象会转换回 频繁访问层中。有关使用这些存储类的信息,请参阅用于自动优化访问模式不断变化或未知的数据的存储类

有关归档对象的一般信息,请参阅使用归档的对象

注意

当您从 S3 Glacier 还原归档对象时,您需要同时为归档的对象和临时还原的副本付费。从 S3 Intelligent-Tiering 还原对象时,标准检索或批量检索不收取检索费用。对已恢复的归档对象调用的后续恢复请求将作为 GET 请求计费。有关定价的信息,请参阅 Amazon S3 定价

还原已归档的对象

您可以使用 Amazon S3 控制台、Amazon S3 REST API、Amazon SDK、Amazon Command Line Interface(Amazon CLI)或 S3 批量操作还原归档的对象。

使用 Amazon S3 控制台还原对象

使用以下过程还原已归档到 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类或 S3 Intelligent-Tiering 归档访问或深度归档访问存储层的对象。

还原已归档的对象
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择

  3. Buckets(桶)列表中,选择包含您想要还原的对象的桶的名称。

  4. Objects(对象)列表中,选择要还原的一个或多个对象,再选择 Actions(操作),然后选择 Initiate restore(启动还原)。

  5. 如果要从 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 进行还原,请在还原的副本可用的天数框中输入您希望归档数据可供访问的天数。

  6. 对于检索层,执行以下操作之一:

    • 选择批量检索标准检索,然后选择启动还原

    • 选择 Expedited retrieval(加急检索)(仅适用于 S3 Glacier Flexible Retrieval 或 S3 Intelligent-Tiering 归档访问)。如果您要还原 S3 Glacier Flexible Retrieval 中的对象,则可以选择是否要购买预调配容量来进行加速检索。如果要购买预调配容量,请继续执行下一步。否则,请选择启动还原

  7. (可选)如果您要还原 S3 Glacier Flexible Retrieval 中的对象,并且您选择了加速检索,您可以选择是否购买预调配容量。预调配容量仅适用于 S3 Glacier Flexible Retrieval 中的对象。如果您已有预调配容量,请选择 启动还原以开始预调配检索。

    如果您有预调配容量,则您的预调配容量可处理您的所有加速检索。有关更多信息,请参阅预调配容量

    • 如果您没有预调配容量并且不想购买,请选择启动还原

    • 如果您没有预调配容量,但要购买预调配容量单位(PCU),请选择购买 PCU。在购买 PCU 对话框中,选择要购买的 PCU 数量,确认购买,然后选择购买 PCU。在收到购买成功消息后,选择启动还原以开始预调配检索。

从 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 还原对象

以下示例使用 restore-object 命令还原桶 DOC-EXAMPLE-BUCKET 中的对象 dir1/example.obj,时间为 25 天。

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

如果示例中使用的 JSON 句法导致 Windows 客户端错误,则使用如下句法替换还原请求:

--restore-request Days=25,GlacierJobParameters={"Tier"="Standard"}
从 S3 Intelligent-Tiering 归档访问和深度归档访问还原对象

以下示例使用 restore-object 命令将桶 DOC-EXAMPLE-BUCKET 中的对象 dir1/example.obj 还原到频繁访问层

aws s3api restore-object --bucket DOC-EXAMPLE-BUCKET --key dir1/example.obj --restore-request '{}'
监控还原状态

要监控 restore-object 请求的状态,请使用以下 head-object 命令:

aws s3api head-object --bucket DOC-EXAMPLE-BUCKET --key dir1/example.obj

有关更多信息,请参阅《Amazon CLI 命令参考》中的 restore-object

Amazon S3 向您提供了用于启动归档对象还原的 API 操作。有关更多信息,请参阅《Amazon Simple Storage Service API 参考》中的 RestoreObject

有关如何使用 Amazon SDK 还原 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 中的归档对象的示例,请参阅使用 Amazon SDK 将对象的归档副本还原到 Amazon S3 桶

要使用单个请求还原多个归档对象,您可以使用 S3 批量操作。您为 S3 分批操作提供要操作的对象列表。S3 批量操作调用相应的 API 操作来执行指定的操作。单个分批操作任务可对包含 EB 级数据的数十亿个对象执行指定操作。

要创建批量操作任务,您必须有一个仅包含要还原的对象的清单。您可以使用 S3 清单来创建清单,也可以提供包含必要信息的 CSV 文件。有关更多信息,请参阅指定清单

在创建和运行 S3 批量操作任务之前,您必须向 Amazon S3 授予代表您执行 S3 批量操作的权限。有关所需的权限,请参阅授予 Amazon S3 分批操作的权限

注意

批量操作任务既可以在 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储类对象上运行,也可以在 S3 Intelligent-Tiering 归档访问和深度归档访问存储层对象上运行。批量操作不能在同一个任务中对两种类型的归档对象进行操作。要还原两种类型的对象,必须创建单独的分批操作任务。

有关使用批量操作还原归档对象的更多信息,请参阅使用批量操作还原对象

创建 S3 启动还原对象批量操作任务
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择分批操作

  3. 选择创建任务

  4. 对于 Amazon Web Services 区域,选择要在其中创建任务的 Region (区域)。

  5. 清单格式下,请选择要使用的清单类型。

    • 如果您选择 S3 清单报告,请输入 Amazon S3 作为 CSV 格式清单报告的一部分生成的 manifest.json 对象的路径。如果要使用除最新版本之外的清单版本,请输入 manifest.json 对象的版本 ID。

    • 如果您选择 CSV,请输入 CSV 格式清单对象的路径。清单对象必须遵循控制台中描述的格式。如果要使用除最新版本之外的版本,则可以选择包含清单对象的版本 ID。

  6. 选择 Next(下一步)。

  7. 操作部分,选择还原

  8. 还原部分,对于还原源,选择 Glacier Flexible Retrieval 或 Glacier Deep ArchiveIntelligent-Tiering 归档访问层或深度归档访问层

    如果您选择 Glacier Flexible Retrieval 或 Glacier Deep Archive,则为还原的副本可用的天数输入一个数字。

    对于检索层,选择要使用的层。

  9. 选择 Next(下一步)。

  10. 配置其他选项页面上,填写以下部分:

    • 其他选项部分,提供任务的描述并指定该任务的优先级编号。编号越大,优先级越高。有关更多信息,请参阅分配任务优先级

    • 完成报告部分中,选择批量操作是否应创建完成报告。有关完成报告的更多信息,请参阅完成报告

    • 权限部分,您必须向 Amazon S3 授予代表您执行批量操作的权限。有关所需的权限,请参阅授予 Amazon S3 分批操作的权限

    • (可选)在任务标签部分,以键值对方式添加标签。有关更多信息,请参阅使用标签控制访问和标记任务

    完成后,选择下一步

  11. Review (审核) 页面上,验证设置。如果需要进行更改,请选择 Previous。否则,请选择创建任务

有关批量操作的更多信息,请参阅使用批量操作还原对象创建 S3 批量操作任务

检查还原状态和到期日期

您可以使用 Amazon S3 控制台、Amazon CLI 或 REST API 查看还原请求的状态或过期日期。

注意

从 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 还原的对象仅存储您指定的天数。以下过程将返回这些副本的过期日期。从 S3 Intelligent-Tiering 归档访问和深度归档访问存储层还原的对象没有过期日期,而是移回到频繁访问层。

在 Amazon S3 控制台中检查对象的还原状态和过期日期
  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择

  3. 列表中,选择包含待还原对象的桶的名称。

  4. 对象列表中,选择要还原的对象。此时将显示对象的详细信息页面。

    • 如果还原未完成,则在页面顶部,您会看到一个部分显示正在还原

    • 如果还原已完成,则在页面顶部,您会看到一个部分显示还原完成。如果您从 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 中进行还原,则此部分还会显示还原过期日期。在该日期,Amazon S3 将删除归档对象的已还原副本。

使用 Amazon CLI 检查对象的还原状态和过期日期

以下示例使用 head-object 命令查看桶 DOC-EXAMPLE-BUCKET 中对象 dir1/example.obj 的元数据。当您对正在还原的对象运行此命令时,Amazon S3 会返回还原是否正在进行以及(如果适用)过期日期。

aws s3api head-object --bucket DOC-EXAMPLE-BUCKET --key dir1/example.obj

预期输出(还原正在进行中):

{ "Restore": "ongoing-request=\"true\"", "LastModified": "2020-06-16T21:55:22+00:00", "ContentLength": 405, "ETag": "\"b662d79adeb7c8d787ea7eafb9ef6207\"", "VersionId": "wbYaE2vtOV0iIBXrOqGAJt3fP1cHB8Wi", "ContentType": "binary/octet-stream", "ServerSideEncryption": "AES256", "Metadata": {}, "StorageClass": "GLACIER" }

预期输出(还原已完成):

{ "Restore": "ongoing-request=\"false\", expiry-date=\"Wed, 12 Aug 2020 00:00:00 GMT\"", "LastModified": "2020-06-16T21:55:22+00:00", "ContentLength": 405, "ETag": "\"b662d79adeb7c8d787ea7eafb9ef6207\"", "VersionId": "wbYaE2vtOV0iIBXrOqGAJt3fP1cHB8Wi", "ContentType": "binary/octet-stream", "ServerSideEncryption": "AES256", "Metadata": {}, "StorageClass": "GLACIER" }

有关 head-object 的更多信息,请参阅《Amazon CLI 参考》中的 head-object

Amazon S3 提供了一个 API 操作供您检索对象元数据。要使用 REST API 检查归档对象的还原状态和过期日期,请参阅《Amazon Simple Storage Service API 参考》中的 HeadObject

升级正在进行的还原的速度

在还原过程中,您可以升级还原的速度。

将正在进行的还原升级到更快的层级
  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择

  3. Buckets(桶)列表中,选择包含您想要还原的对象的桶的名称。

  4. 对象列表中,选择要还原的对象。此时将显示对象的详细信息页面。在对象的详细信息页面上,选择升级检索层。有关检查对象还原状态的信息,请参阅检查还原状态和到期日期

  5. 选择要升级到的层,然后选择启动还原