Some of the complexity of replication lies around deletion of objects and versioning plays a major role there.
If you delete an object from the source bucket, the following actions occur by default:
If you make a DELETE request without specifying an object version ID, Amazon S3 adds a delete marker. Amazon S3 deals with the delete marker as follows:
If you are using the latest version of the replication configuration (that is, you specify the Filter element in a replication configuration rule), Amazon S3 does not replicate the delete marker by default. However you can add delete marker replication to non-tag-based rules, for more information see Replicating delete markers between buckets.
If you don't specify the Filter element, Amazon S3 assumes that the replication configuration is version V1, and it replicates delete markers that resulted from user actions. However, if Amazon S3 deletes an object due to a lifecycle action, the delete marker is not replicated to the destination buckets.
If you specify an object version ID to delete in a DELETE request, Amazon S3 deletes that object version in the source bucket. But it doesn't replicate the deletion in the destination buckets. In other words, it doesn't delete the same object version from the destination buckets. This protects data from malicious deletions.
Versioning on Snowball EdgeAccepted Answerasked 3 years ago
I need to transfer objects from s3 bucket to another s3 in the same accountasked 17 hours ago
Amazon S3 VersioningAccepted Answerasked 2 years ago
S3 Bucket Object Versioning & Lifecycle Rules - Applied to Existing Objects or only New?Accepted Answerasked 5 years ago
How do we unzip a file in S3 bucket using C#.NETasked 3 months ago
AWS Transfer Family cannot download with S3 Versioning enabledasked 2 years ago
Why do we need S3 bucket versioning enabled in order to do replication?Accepted Answerasked a year ago
How do I restore deleted files in S3?asked 5 months ago
S3 bucket replication with Object lock. "Contact support"asked 5 months ago
Manually set S3 replication statusAccepted Answerasked 2 years ago