Select your cookie preferences

We use essential cookies and similar tools that are necessary to provide our site and services. We use performance cookies to collect anonymous statistics, so we can understand how customers use our site and make improvements. Essential cookies cannot be deactivated, but you can choose “Customize” or “Decline” to decline performance cookies.

If you agree, AWS and approved third parties will also use cookies to provide useful site features, remember your preferences, and display relevant content, including relevant advertising. To accept or decline all non-essential cookies, choose “Accept” or “Decline.” To make more detailed choices, choose “Customize.”

Adding objects to versioning-enabled buckets

Focus mode
Adding objects to versioning-enabled buckets - Amazon Simple Storage Service

After you enable versioning on a bucket, Amazon S3 automatically adds a unique version ID to every object stored (using PUT, POST, or CopyObject) in the bucket.

The following figure shows that Amazon S3 adds a unique version ID to an object when it is added to a versioning-enabled bucket.

Illustration that shows a unique version ID added to an object when it is put in a versioning-enabled bucket.
Note

The version ID values that Amazon S3 assigns are URL safe (can be included as part of a URI).

For more information about versioning, see Retaining multiple versions of objects with S3 Versioning. You can add object versions to a versioning-enabled bucket using the console, AWS SDKs, and REST API.

For instructions, see Uploading objects.

For instructions, see Uploading objects.

For examples of uploading objects using the AWS SDKs for Java, .NET, and PHP, see Uploading objects. The examples for uploading objects in nonversioned and versioning-enabled buckets are the same, although in the case of versioning-enabled buckets, Amazon S3 assigns a version number. Otherwise, the version number is null.

For information about using other AWS SDKs, see the AWS Developer Center.

For examples of uploading objects using the AWS SDKs for Java, .NET, and PHP, see Uploading objects. The examples for uploading objects in nonversioned and versioning-enabled buckets are the same, although in the case of versioning-enabled buckets, Amazon S3 assigns a version number. Otherwise, the version number is null.

For information about using other AWS SDKs, see the AWS Developer Center.

To add objects to versioning-enabled buckets
  1. Enable versioning on a bucket using a PutBucketVersioning request.

    For more information, see PutBucketVersioning in the Amazon Simple Storage Service API Reference.

  2. Send a PUT, POST, or CopyObject request to store an object in the bucket.

When you add an object to a versioning-enabled bucket, Amazon S3 returns the version ID of the object in the x-amz-version-id response header, as shown in the following example.

x-amz-version-id: 3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY

To add objects to versioning-enabled buckets
  1. Enable versioning on a bucket using a PutBucketVersioning request.

    For more information, see PutBucketVersioning in the Amazon Simple Storage Service API Reference.

  2. Send a PUT, POST, or CopyObject request to store an object in the bucket.

When you add an object to a versioning-enabled bucket, Amazon S3 returns the version ID of the object in the x-amz-version-id response header, as shown in the following example.

x-amz-version-id: 3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY
PrivacySite termsCookie preferences
© 2025, Amazon Web Services, Inc. or its affiliates. All rights reserved.