配置实时复制的示例
以下各示例提供的分步演练介绍了如何为常见使用案例配置实时复制。
注意
实时复制指同区域复制 (SRR) 和跨区域复制 (CRR)。实时复制不会复制在设置复制之前就存在于存储桶中的任何对象。想要复制在设置复制之前就存在的对象,请使用按需复制。要同步存储桶和按需复制现有对象,请参阅复制现有对象。
这些示例演示了如何使用 Amazon S3 控制台、AWS Command Line Interface(AWS CLI)和 AWS SDK(展示了适用于 Java 的 AWS SDK 和适用于 .NET 的 AWS SDK 示例)创建复制配置。
有关安装和配置 AWS CLI 的信息,请参阅《AWS Command Line Interface 用户指南》中的以下主题:
-
Configure the AWS CLI – 必须设置至少一个配置文件。如果要探讨跨账户方案,请设置两个配置文件。
有关 AWS SDK 的更多信息,请参阅适用于 Java 的 AWS SDK
提示
有关演示如何使用实时复制来复制数据的分步教程,请参阅教程:使用 S3 复制在 AWS 区域内和区域之间复制数据
复制注释
当您在存储桶上配置复制时,Amazon S3 会自动复制注释以作为实时复制的一部分。当发生变化时,每个注释都会独立复制。要复制注释,复制 IAM 角色必须包含对源存储桶的 s3:GetObjectVersionAnnotationForReplication 权限。
以下示例显示 IAM 角色权限策略中的源存储桶语句,其中包含注释复制权限:
{ "Effect": "Allow", "Action": [ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging", "s3:GetObjectVersionAnnotationForReplication" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-source-bucket/*" ] }
注释复制不需要额外的目标存储桶权限。针对目标存储桶的 s3:ReplicateObject 权限涵盖注释复制。
请注意注释复制的以下行为:
-
源上的注释添加和更新会复制到目标。当发生变化时,每个注释都会独立复制。
-
源上的注释删除不会复制到目标。如果删除源上的注释,则注释将保留在目标上。
-
如果在源上重复删除注释并使用不同的名称重新创建注释,注释会随着时间的推移在目标上累积,因为不会复制删除。
如果您不希望将注释复制到目标存储桶,则目标存储桶拥有者可以在目标存储桶策略中为 s3:ReplicateObjectAnnotation 操作添加拒绝语句。对象复制继续成功;只阻止注释复制。以下示例显示拒绝语句。
... "Statement":[ { "Effect":"Deny", "Principal":{ "AWS":"arn:aws:iam::source-bucket-account-id:role/service-role/source-account-IAM-role" }, "Action":"s3:ReplicateObjectAnnotation", "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*" } ] ...
有关注释复制行为的更多信息,请参阅 Amazon S3 复制什么内容?。有关权限设置说明,请参阅为实时复制设置权限。