Amazon S3 复制什么内容? - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon S3 复制什么内容?

Amazon S3 仅复制为复制配置的存储桶中的特定项目。

使用复制配置会复制什么?

默认情况下,Amazon S3 会复制以下内容:

  • 添加复制配置之后创建的对象。

  • 未加密的对象。

  • 使用客户提供密钥(SSE-C)加密的对象,使用 Amazon S3 托管密钥(SSE-S3)或存储在 Amazon Key Management Service 中的 KMS 密钥(SSE-KMS)静态加密的对象。有关更多信息,请参阅复制使用服务器端加密(SSE-C、SSE-S3、SSE-KMS、DSSE-KMS)创建的对象

  • 从源对象到副本的对象元数据。有关将元数据从副本复制到源对象的信息,请参阅 使用 Amazon S3 副本修改同步复制元数据更改

  • 仅限存储桶拥有者有权读取其对象和访问控制列表(ACL)的源存储存储桶中的对象。

    有关资源所有权的更多信息,请参阅 Amazon S3 存储桶和对象所有权

  • 对象 ACL 更新(但源存储桶和目标存储桶不是由相同账户拥有时指示 Amazon S3 更改副本所有权的情况除外)。

    有关更多信息,请参阅 更改副本拥有者

    在 Amazon S3 能够使两个 ACL 同步之前,可能需要花一些时间。这一所有权变更仅适用于在向存储桶添加复制配置之后创建的对象。

  • 对象标签(如果有)。

  • S3 对象锁定保留信息(如果有)。

    如果 Amazon S3 复制应用了保留信息的对象,它会将相同的保留控制功能应用于您的副本,从而替换在目标存储桶上配置的默认保留期。如果未对您源存储桶中的对象应用保留控制功能,并且您复制到设置了默认保留期的目标存储桶,则目标存储桶的默认保留期将应用于对象副本。有关更多信息,请参阅 使用 S3 对象锁定

删除操作对复制操作有何影响

如果您从源存储桶中删除对象,则默认情况下会执行以下操作:

  • 如果您发出 DELETE 请求而未指定对象版本 ID,Amazon S3 会添加一个删除标记。Amazon S3 将按如下所示处理该删除标记:

    • 如果您使用的是最新版本的复制配置(即在复制配置规则中指定 Filter 元素),Amazon S3 默认不会复制该删除标记。但是,您可以将删除标记复制添加到非基于标记的规则。有关更多信息,请参阅在存储桶之间复制删除标记

    • 如果您未指定 Filter 元素,则 Amazon S3 将假定复制配置为版本 V1,并复制用户操作产生的删除标记。但是,如果 Amazon S3 因生命周期操作删除了对象,则删除标记不会复制到目标存储桶。

  • 如果您在 DELETE 请求中指定一个要删除的对象版本 ID,Amazon S3 会在源存储桶中删除该对象版本。但不会将删除操作复制到目标存储桶中。换句话说,它不会从目标存储桶中删除同一对象版本。这会防止恶意删除数据。

使用复制配置不会复制什么?

默认情况下,Amazon S3 不复制以下内容:

  • 源存储桶中作为另一个复制规则所建副本的对象。例如,假设您配置的复制中,存储桶 A 是源,存储桶 B 是目标。现在假设您添加另一个复制配置,其中存储桶 B 是源,而存储桶 C 是目标。在这种情况下,存储桶 B 中作为存储桶 A 中对象的副本的对象不会复制到存储桶 C。

    要复制属于副本的对象,请使用分批复制。请通过 复制现有对象 了解有关配置分批复制的更多信息。

  • 源存储桶中已复制到其他目标的对象。例如,如果您在现有复制配置中更改目标存储桶,则 Amazon S3 不会再次复制对象。

    要复制之前已复制的对象,请使用分批复制。请通过 复制现有对象 了解有关配置分批复制的更多信息。

  • 批处理复制不支持重新复制从目标存储桶中使用对象的版本 ID 删除的对象。要重新复制这些对象,您可以使用分批复制任务将源对象复制到位。将这些对象复制到位会在源存储桶中创建对象的新版本,并自动启动到目标的复制。有关如何使用分批复制的更多信息,请参阅使用分批操作复制对象的示例

  • 默认情况下,从不同的 Amazon Web Services 账户 进行复制时,添加到源存储桶的删除标记不会被复制。

    有关如何复制删除标记的更多信息,请参阅 在存储桶之间复制删除标记

  • 存储在 S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive、S3 Intelligent-Tiering Archive Access 或 S3 Intelligent-Tiering Deep Archive Access 存储类或层中的对象。在还原这些对象并将它们复制到不同的存储类之前,您无法复制它们。

    要了解有关 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 的更多信息,请参阅用于存档对象的存储类

    有关 S3 Intelligent-Tiering 的更多信息,请参阅Amazon S3 Intelligent-Tiering

  • 源存储存储桶中存储桶拥有者没有足够权限进行复制的对象。

    有关对象拥有者如何向存储桶拥有者授予权限的信息,请参阅在授予上载对象的跨账户权限的同时,确保存储桶拥有者拥有完全控制权

  • 对存储桶级别子资源进行的更新。

    例如,如果您更改生命周期配置或向源存储桶添加通知配置,则这些更改不会应用于目标存储桶。此功能使您可以在源存储桶和目标存储桶中具有不同的配置。

  • 由生命周期配置执行的操作。

    例如,如果仅对源存储桶启用了生命周期配置,则 Amazon S3 会为过期对象创建删除标记,但不会复制这些标记。如果您希望对源存储桶和目标存储桶应用相同的生命周期配置,请对这两个存储桶启用相同的生命周期配置。有关生命周期配置的更多信息,请参阅 管理存储生命周期

默认存储桶加密和复制

在为复制目标存储桶启用默认加密后,将应用以下加密行为:

  • 如果未对源存储桶中的对象进行加密,则将使用目标存储桶的默认加密设置对目标存储桶中的副本对象进行加密。因此,源对象的实体标签(ETag)与副本对象的 ETag 不同。如果您有使用 ETag 的应用程序,则必须更新这些应用程序以弥补这种差异。

  • 如果使用具有 Amazon S3 托管密钥的服务器端加密(SSE-S3)、具有 Amazon Key Management Service(Amazon KMS)密钥的服务器端加密(SSE-KMS)或具有 Amazon KMS 密钥的双层服务器端加密(DSSE-KMS)来加密源存储桶中的对象,则目标存储桶中的副本对象使用与源对象相同类型的加密。不会使用目标存储桶的默认加密设置。