

# Amazon S3 复制什么内容？
<a name="replication-what-is-isnot-replicated"></a>

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

**Topics**
+ [使用复制配置会复制什么？](#replication-what-is-replicated)
+ [使用复制配置不会复制什么？](#replication-what-is-not-replicated)

## 使用复制配置会复制什么？
<a name="replication-what-is-replicated"></a>

默认情况下，Amazon S3 会复制以下内容：
+ 添加复制配置之后创建的对象。
+ 未加密的对象。
+ 使用客户提供密钥（SSE-C）加密的对象，使用 Amazon S3 托管密钥（SSE-S3）或存储在 AWS Key Management Service 中的 KMS 密钥（SSE-KMS）静态加密的对象。有关更多信息，请参阅 [复制加密对象（SSE-S3、SSE-KMS、DSSE-KMS、SSE-C）](replication-config-for-kms-objects.md)。
+ 从源对象到副本的对象元数据。有关将元数据从副本复制到源对象的信息，请参阅 [使用副本修改同步复制元数据更改](replication-for-metadata-changes.md)。
+ 仅限存储桶拥有者有权读取其对象和访问控制列表（ACL）的源存储存储桶中的对象。

  有关资源所有权的更多信息，请参阅 [Amazon S3 存储桶和对象所有权](access-policy-language-overview.md#about-resource-owner)。
+ 对象 ACL 更新（但源存储桶和目标存储桶不是由相同账户拥有时指示 Amazon S3 更改副本所有权的情况除外）。

  有关更多信息，请参阅 [更改副本拥有者](replication-change-owner.md)。

  在 Amazon S3 能够使两个 ACL 同步之前，可能需要花一些时间。这一所有权变更仅适用于在向存储桶添加复制配置之后创建的对象。
+  对象标签（如果有）。
+ S3 对象锁定保留信息（如果有）。

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

### 删除操作对复制操作有何影响
<a name="replication-delete-op"></a>

如果您从源存储桶中删除对象，则默认情况下会执行以下操作：
+ 如果您发出 DELETE 请求而未指定对象版本 ID，Amazon S3 会添加一个删除标记。Amazon S3 将按如下所示处理该删除标记：
  + 如果您使用的是最新版本的复制配置（即在复制配置规则中指定 `Filter` 元素），Amazon S3 默认不会复制该删除标记。但是，您可以将*删除标记复制*添加到非基于标记的规则。有关更多信息，请参阅 [在存储桶之间复制删除标记](delete-marker-replication.md)。
  + 如果您未指定 `Filter` 元素，则 Amazon S3 将假定复制配置为版本 V1，并复制用户操作产生的删除标记。但是，如果 Amazon S3 因生命周期操作删除了对象，则删除标记不会复制到目标存储桶。
+ 如果您在 `DELETE` 请求中指定一个要删除的对象版本 ID，Amazon S3 会在源存储桶中删除该对象版本。但不会将删除操作复制到目标存储桶中。换句话说，它不会从目标存储桶中删除同一对象版本。这会防止恶意删除数据。

## 使用复制配置不会复制什么？
<a name="replication-what-is-not-replicated"></a>

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

  要复制属于副本的对象，请使用分批复制。请通过 [复制现有对象](s3-batch-replication-batch.md) 了解有关配置分批复制的更多信息。
+ 源存储桶中已复制到其他目标的对象。例如，如果您在现有复制配置中更改目标存储桶，则 Amazon S3 不会再次复制对象。

  要复制之前已复制的对象，请使用分批复制。请通过 [复制现有对象](s3-batch-replication-batch.md) 了解有关配置分批复制的更多信息。
+ 批处理复制不支持重新复制从目标存储桶中使用对象的版本 ID 删除的对象。要重新复制这些对象，您可以使用分批复制任务将源对象复制到位。将这些对象复制到位会在源存储桶中创建对象的新版本，并自动启动到目标的复制。有关如何使用分批复制的更多信息，请参阅[使用分批操作复制对象的示例](batch-ops-examples-copy.md)。
+ 默认情况下，从不同的 AWS 账户 进行复制时，添加到源存储桶的删除标记不会被复制。

  有关如何复制删除标记的更多信息，请参阅 [在存储桶之间复制删除标记](delete-marker-replication.md)。
+ 存储在 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 的更多信息，请参阅[极少访问的对象的存储类](storage-class-intro.md#sc-glacier)。

  有关 S3 Intelligent-Tiering 的更多信息，请参阅[使用 Amazon S3 Intelligent-Tiering 管理存储成本](intelligent-tiering.md)。
+ 源存储存储桶中存储桶拥有者没有足够权限进行复制的对象。

  有关对象拥有者如何向存储桶拥有者授予权限的信息，请参阅[在授予上传对象的跨账户权限的同时，确保存储桶拥有者拥有完全控制权](example-bucket-policies.md#example-bucket-policies-acl-2)。
+ 对存储桶级别子资源进行的更新。

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

  例如，如果仅对源存储桶启用了生命周期配置，则 Amazon S3 会为过期对象创建删除标记，但不会复制这些标记。如果您希望对源存储桶和目标存储桶应用相同的生命周期配置，请对这两个存储桶启用相同的生命周期配置。有关生命周期配置的更多信息，请参阅 [管理对象的生命周期](object-lifecycle-mgmt.md)。
+ 当您在实时复制中使用基于标签的复制规则时，必须在 `PutObject` 操作中使用匹配的复制规则标签来标记新对象。否则，将不会复制对象。如果在 `PutObject` 操作后标记了对象，也不会复制这些对象。

  要复制在 `PutObject` 操作之后标记的对象，您必须使用 S3 批量复制。有关分批复制的更多信息，请参阅 [复制现有对象](s3-batch-replication-batch.md)。