使用 S3 複寫時間控制 (S3 RTC) 複寫物件 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 S3 複寫時間控制 (S3 RTC) 複寫物件

S3 複寫時間控制 (S3 RTC) 可協助滿足資料複寫的合規性或業務要求,讓您清楚掌握 Amazon S3 複寫時間。S3 RTC 會在數秒內複寫您上傳至 Amazon S3 的多數物件,以及在 15 分鐘內複寫 99.99% 的這些物件。

使用 S3 RTC 時,您可以監控擱置中複寫之物件的總數和大小,以及對目標區域的最長複寫時間。複寫指標可透過AWS Management ConsoleAmazon CloudWatch 使用者指南取得。如需詳細資訊,請參閱「S3 複寫指標 CloudWatch 」。

主題

    如需 step-by-step 指示,請參閱為相同帳戶擁有的來源和目的地儲存貯體設定複寫。本主題提供指示,如何在儲存貯體擁有相同且不 AWS 帳戶同的儲存貯體時,在複寫組態中啟用 S3 RTC。

    若要在啟用 S3 RTC 的情況下使用複寫物件,請建立儲存貯體、在儲存貯體上啟用版本控制、建立 IAM 角色以授予 Amazon S3 複寫物件的權限,以及將複寫組態新增至來源儲存貯體。 AWS CLI 複寫組態必須已啟用 S3 複寫時間控制 (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 複寫時間控制 (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 複寫時間控制 (S3 RTC) 來達到合規要求