示例 5:S3 Replication Time Control (S3 RTC) 配置 - Amazon Simple Storage Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

示例 5:S3 Replication Time Control (S3 RTC) 配置

S3 Replication Time Control (S3 RTC) 帮助您满足数据复制的合规性或业务要求,并供您了解 Amazon S3 复制时间。S3 RTC 在几秒钟内复制您上传到 Amazon S3 的大多数对象,并在 15 分钟内复制 99.99% 的对象。

借助 S3 RTC,您可以监控等待复制的对象总数和大小,以及到目标区域的最长复制时间。复制指标可通过 AWS 管理控制台Amazon CloudWatch 用户指南 获取。有关更多信息,请参阅 Amazon S3 CloudWatch 复制度量

主题

    有关分步说明,请参阅 Amazon Simple Storage Service 控制台用户指南 中的如何向 S3 存储桶添加复制规则?本主题说明了当两个存储桶由相同和不同 AWS 账户拥有时,如何在复制配置启用 S3 RTC。

    要在启用 S3 RTC 的情况下使用 AWS CLI 复制对象,您需要创建存储桶,对存储桶启用版本控制,创建一个 IAM 角色,该角色赋予 Amazon S3 复制对象并将复制配置添加到源存储桶的权限。复制配置需要已启用 S3 Replication Time Control (S3 RTC)。

    在已启用 S3 RTC 时复制 (AWS CLI)

    • 在此示例中,我们设置 ReplicationTimeMetric 并将复制配置添加到源存储桶。

      { "Rules": [ { "Status": "Enabled", "Filter": { "Prefix": "Tax" }, "DeleteMarkerReplication": { "Status": "Disabled" }, "Destination": { "Bucket": "arn:aws:s3:::destination", "Metrics": { "Status": "Enabled", "EventThreshold": { "Minutes": 15 } }, "ReplicationTime": { "Status": "Enabled", "Time": { "Minutes": 15 } } }, "Priority": 1 } ], "Role": "IAM-Role-ARN" }
      重要

      Metrics:EventThreshold:MinutesReplicationTime:Time:Minutes 只能设置为 15 才是有效值。

    下面是一个使用 S3 Replication Time Control (S3 RTC) 添加复制配置的 Java 示例:

    import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.model.DeleteMarkerReplication; import software.amazon.awssdk.services.s3.model.Destination; import software.amazon.awssdk.services.s3.model.Metrics; import software.amazon.awssdk.services.s3.model.MetricsStatus; import software.amazon.awssdk.services.s3.model.PutBucketReplicationRequest; import software.amazon.awssdk.services.s3.model.ReplicationConfiguration; import software.amazon.awssdk.services.s3.model.ReplicationRule; import software.amazon.awssdk.services.s3.model.ReplicationRuleFilter; import software.amazon.awssdk.services.s3.model.ReplicationTime; import software.amazon.awssdk.services.s3.model.ReplicationTimeStatus; import software.amazon.awssdk.services.s3.model.ReplicationTimeValue; public class Main { public static void main(String[] args) { S3Client s3 = S3Client.builder() .region(Region.US_EAST_1) .credentialsProvider(() -> AwsBasicCredentials.create( "AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY") ) .build(); ReplicationConfiguration replicationConfig = ReplicationConfiguration .builder() .rules( ReplicationRule .builder() .status("Enabled") .priority(1) .deleteMarkerReplication( DeleteMarkerReplication .builder() .status("Disabled") .build() ) .destination( Destination .builder() .bucket("destination_bucket_arn") .replicationTime( ReplicationTime.builder().time( ReplicationTimeValue.builder().minutes(15).build() ).status( ReplicationTimeStatus.ENABLED ).build() ) .metrics( Metrics.builder().eventThreshold( ReplicationTimeValue.builder().minutes(15).build() ).status( MetricsStatus.ENABLED ).build() ) .build() ) .filter( ReplicationRuleFilter .builder() .prefix("testtest") .build() ) .build()) .role("role_arn") .build(); // Put replication configuration PutBucketReplicationRequest putBucketReplicationRequest = PutBucketReplicationRequest .builder() .bucket("source_bucket") .replicationConfiguration(replicationConfig) .build(); s3.putBucketReplication(putBucketReplicationRequest); } }

    有关更多信息,请参阅 符合合规要求 S3 Replication Time Control (S3 RTC)