August 20th, 2024

Amazon S3 now supports conditional writes

Amazon S3 has introduced conditional writes to prevent overwriting existing objects, enhancing reliability for concurrent updates in applications. This feature is free and accessible via AWS SDK, API, or CLI.

Read original articleLink Icon
Amazon S3 now supports conditional writes

Amazon S3 has introduced support for conditional writes, allowing users to check for the existence of an object before creating it. This feature aims to prevent the overwriting of existing objects during data uploads, enhancing the reliability of applications that involve multiple clients updating shared datasets concurrently. By using conditional writes with the PutObject or CompleteMultipartUpload API requests, clients can ensure that they do not overwrite objects written by others, eliminating the need for client-side consensus mechanisms or additional API requests to verify object presence. This capability is particularly beneficial for large-scale analytics, distributed machine learning, and other parallelized workloads, as it offloads validation tasks to S3, improving performance and efficiency. The conditional writes feature is available at no extra cost across all AWS Regions, including GovCloud and China Regions, and can be accessed through the AWS SDK, API, or CLI. Users can implement this feature by adding the HTTP if-none-match conditional header to their requests.

- Amazon S3 now supports conditional writes to prevent overwriting existing objects.

- This feature simplifies concurrent updates in distributed applications.

- It enhances performance for large-scale analytics and machine learning tasks.

- Conditional writes are available at no additional charge in all AWS Regions.

- Users can implement this feature using the AWS SDK, API, or CLI.

Link Icon 2 comments
By @eightnoteight - 8 months
most of the current systems that need a reliable managed service for distributed locking use dynamodb, are there any scenarios where s3 is preferrable than dynamodb for implementing such distributed locking?
By @devnull3 - 8 months
How is this priced? Is it Get + Put or only Put?