Are writes to Amazon S3 atomic (all-or-nothing)?

amazon-s3, amazon-web-services

Solution

For all regions except US Standard (us-east-1) you get read-after-write-consistency. This means that if you get an HTTP 200 OK for your PUT, you can read the object right away.

If your request is dropped in the middle, you would not get and HTTP 200 and your object would not be written at all.

UPDATE: All regions now support read-after-write consistency (thanks @jeff-loughridge): https://aws.amazon.com/about-aws/whats-new/2015/08/amazon-s3-introduces-new-usability-enhancements/

Problem

I have a large number of files that I am reading and writing to S3. I am just wondering if I need to code for the case where a file is "half written" e.g. the S3 PUT / Write only "half" worked. Or are writes to S3 all-or-nothing? I know there is a read-write eventual consistency issue which (I think) is largely a separate issue.

Original source