Add preconditions to S3 operations with conditional requests
You can use conditional requests to add preconditions to your S3 operations. To use conditional requests, you add an additional header to your Amazon S3 API operation. This header specifies a condition that, if not met, will result in the S3 operation failing.
Conditional reads are supported for GET
, HEAD
, and
COPY
requests. You can add preconditions to return or copy an object based
on its Entity tag (ETag) or last modified date. This can limit an S3 operation to objects
updated since a specified date. You can also limit an S3 operation to a specific ETag. This
could ensure you only return or copy a specific object version. For more information about
the object metadata, see Working with object metadata.
Conditional writes can ensure there is no existing object with the same key name in your
bucket during PUT
operations. This prevents overwriting of existing objects
with identical key names. Similarly, you can use conditional writes to check if an object's ETag is
unchanged before updating the object. This prevents unintentional overwrites on an object without
knowing the state of its content. You can use conditional writes for PutObject or CompleteMultipartUpload requests. For more information about key names, see
Naming Amazon S3 objects.
There is no additional charge for conditional reads or conditional writes. You are only charged existing rates for the
applicable requests, including for failed requests. For information about Amazon S3 features and
pricing, see Amazon S3 pricing