如何查看从一个 Amazon S3 存储桶复制到另一个 Amazon S3 存储桶失败的对象?

1 分钟阅读
0

我想检索在设置从一个 Amazon Simple Storage Service (Amazon S3) 存储桶到另一个存储桶的复制时复制失败的对象列表。

概述

您可以启用 S3 Replication Time Control (S3 RTC),为复制失败的合格对象设置事件通知。您还可以使用 S3 RTC 为复制时间超过 15 分钟的合格对象设置通知。此外,您可以通过以下方式之一获取复制失败的对象列表:

  • 查看 Amazon S3 库存报告
  • 运行 HeadObject API 调用

解决方法

Amazon S3 库存报告

Amazon S3 库存报告每天或每周列出您的对象及其元数据。对象的复制状态可以为 PENDING、COMPLETED、FAILED 或 REPLICA。

要查找复制失败的对象,请筛选复制状态为 FAILED 的对象的最新报告。然后,您可以启动将对象手动复制到目标存储桶。您也可以将对象重新上传到源存储桶(在更正权限之后)以启动复制。

您也可以使用 Amazon Athena 查询库存报告中的复制状态。

HeadObject API 调用

要获取源存储桶中设置为复制的对象的列表,您可以对这些对象运行 HeadObject API 调用。HeadObject 返回对象的 PENDING、COMPLETED 或 FAILED 复制状态。在对 HeadObject API 调用的响应中,复制状态位于 x-amz-replication-status 元素中。

注意: 要运行 HeadObject,您必须对所请求的对象具有读取访问权限。HEAD 请求具有与 GET 请求相同的选项,但不执行 GET。

在 HeadObject 返回具有 FAILED 复制状态的对象后,您可以将对象手动复制到目标存储桶。您也可以将对象重新上传到源存储桶(在更正权限之后)以启动复制。

重要信息: 如果您手动将对象复制到目标存储桶,则 Amazon S3 库存报告和 HeadObject API 调用将返回 FAILED 复制状态。此复制状态适用于源存储桶中的对象。要更改对象的复制状态并启动复制,您必须将对象重新上传到源存储桶。如果新复制成功,则对象的复制状态将更改为 COMPLETED。如果您必须手动将对象复制到目标存储桶,请务必记下手动复制的日期。然后,按上次修改日期筛选复制状态为 FAILED 的对象。这样做,您能够识别哪些对象已复制或未复制到目标存储桶。

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