复制对象 - Amazon Simple Storage Service

复制对象

复制支持跨 Amazon S3 存储桶自动以异步方式复制对象。为对象复制配置的存储桶可由相同 AWS 账户 或不同账户拥有。您可以将对象复制到单个目标存储桶或多个目标存储桶。目标存储桶可以位于不同的 AWS 区域,也可以与源存储桶位于同一区域内。

要在向存储桶写入新对象时自动复制它们,请使用实时复制,例如同区域复制 (SRR) 或跨区域复制 (CRR)。要根据需要将现有对象复制到其他存储桶,请使用 S3 分批复制。有关复制现有对象的更多信息,请参阅 何时使用 S3 分批复制

要启用 SRR 或 CRR,请将复制配置添加到源存储桶。最小配置必须需要提供以下内容:

  • 您希望 Amazon S3 将对象复制到的目标存储桶

  • 一个 AWS Identity and Access Management (IAM) 角色,Amazon S3 可以代入该角色以代表您复制对象

其他配置选项如下。有关更多信息,请参阅 其他复制配置

为什么使用复制

复制可帮助您实现以下功能:

  • 复制对象,同时保留元数据 – 您可以使用复制来制作对象的副本,并保留所有元数据(例如原始对象创建时间和版本 ID)。如果您必须确保副本与源对象完全相同,则此功能非常重要。

  • 将对象复制到不同的存储类 – 您可以使用复制直接将对象置于目标存储桶中的 S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive 或其他存储类中。您还可以将数据复制到相同的存储类,并在目标存储桶上使用生命周期策略,以在对象老化时将其移动到较冷的存储类。

  • 在不同的所有权下维护对象副本 – 无论谁拥有源对象,您都可以指示 Amazon S3 将副本的所有权更改为拥有目标存储桶的 AWS 账户。这称为拥有者覆盖 选项。您可以使用此选项来要限制对对象副本的访问权限。

  • 将对象存储在多个AWS 区域 – 要确保数据保存位置的地理差异,您可以在不同的 AWS 区域 中设置多个目标存储桶。此功能可能会帮助您满足某些合规性要求。

  • 在 15 分钟内复制对象 – 要在可预测的时间范围内在同一 AWS 区域 或跨不同区域复制您的数据,您可以使用 S3 复制时间控制 (S3 RTC)。S3 RTC 在 15 分钟内复制 Amazon S3 中存储的 99.99% 的新对象(由服务等级协议提供支持)。有关更多信息,请参阅使用 S3 复制时间控制 (S3 RTC) 满足合规性要求

  • 同步存储桶、复制现有对象以及之前无法复制或已复制的对象 – 要同步存储桶和复制现有对象,请使用分批复制作为按需复制操作。有关何时使用分批复制的更多信息,请参阅 何时使用 S3 分批复制

注意

S3 RTC 不适用于分批复制。分批复制是一项按需复制任务,可以使用 S3 分批操作进行跟踪。有关更多信息,请参阅跟踪任务状态和完成报告

何时使用跨区域复制

S3 跨区域复制 (CRR) 用于在不同 AWS 区域中跨 Amazon S3 存储桶复制对象。CRR 可帮助您:

  • 满足合规性要求 – 虽然 Amazon S3 默认跨多个地理位置较远的可用区存储数据,但是合规性要求所规定的数据存储距离可能更远。为满足这些要求,可以使用跨区域复制在远距离 AWS 区域 之间复制数据。

  • 最大限度减少延迟 – 如果客户处于两个地理位置,您可以在地理位置与用户较近的AWS 区域中维护对象副本,从而最大限度缩短访问对象时的延迟。

  • 提高操作效率 – 如果您在两个不同 AWS 区域 中具有分析同一组对象的计算集群,则可以选择在这些区域中维护对象副本。

何时使用同区域复制

同区域复制 (SRR) 用于在同一 AWS 区域中跨 Amazon S3 存储桶复制对象。SRR 可帮助您:

  • 将日志聚合到单个存储桶 – 如果您在多个存储桶中或者跨多个账户存储日志,则可以轻松地将日志复制到区域中的单个存储桶。这样做实现了在单个位置更简单地处理日志。

  • 在生产账户和测试账户之间配置实时复制 – 如果您或您的客户有使用相同数据的生产账户和测试账户,您可以在那些账户之间复制对象,同时保留对象元数据。

  • 遵守数据主权法律 – 您可能需要将数据的多个副本存储在特定区域内的单独 AWS 账户 中。当合规性法规不允许数据离开您的国家/地区时,同区域复制可帮助您自动复制关键数据。

何时使用 S3 分批复制

作为按需选项,分批复制将现有对象复制到不同的存储桶。与实时复制不同,这些任务可以根据需要运行。分批复制可帮助您实现以下功能:

  • 复制现有对象 – 您可以使用分批复制来复制在配置同区域复制或跨区域复制之前添加到存储桶中的对象。

  • 复制之前无法复制的对象 – 您可以筛选分批复制任务以尝试复制状态为 FAILED 的对象。

  • 复制已经复制的对象 – 您可能需要将数据的多个副本存储在单独的 AWS 账户 或 AWS 区域 中。分批复制可以将现有对象复制到新添加的目标。

  • 复制根据复制规则创建的对象的副本 – 复制配置在目标存储桶中创建对象的副本。对象的副本只能通过分批复制进行复制。

复制的要求

复制有下列要求:

  • 源存储桶拥有者必须已为其账户启用源和目标 AWS 区域。目标存储桶拥有者必须已为其账户启用目标区域。

    有关启用或禁用 AWS 区域的更多信息,请参阅《AWS一般参考》中的 AWS 服务终端节点

  • 源存储桶和目标存储桶必须均已启用版本控制。有关版本控制的更多信息,请参阅 在 S3 存储桶中使用版本控制

  • Amazon S3 必须有权代表您将对象从源存储桶复制到目标存储桶。有关这些权限的更多信息,请参阅 设置权限

  • 如果源存储桶的拥有者不拥有该存储桶中的对象,则对象拥有者必须使用对象访问控制列表 (ACL) 对该存储桶拥有者授予 READREAD_ACP 权限。有关更多信息,请参阅 访问控制列表 (ACL) 概述

  • 如果源存储桶已启用 S3 对象锁定,目标存储桶也必须启用 S3 对象锁定。

    有关更多信息,请参阅 使用 S3 对象锁定。要在启用对象锁定的存储桶上启用复制,请联系 AWS Support

有关更多信息,请参阅 设置复制

如果您要在跨账户方案(其中,源存储桶和目标存储桶由不同的 AWS 账户拥有)中设置复制配置,则存在以下附加要求: