Skip to main content
Last updated on

Bucket Versioning

Versioning allows a bucket to retain multiple versions of the same object. Every time an object with the same name (key) is uploaded, instead of overwriting it, the system creates a new version while keeping the old one. This is an important feature for protecting data from accidental deletion or unintended overwrites.

When Should You Use Versioning?

  • Storing important documents that may need to be restored to a previous version
  • Automated backup — keeping a history of file changes
  • Protecting data from accidental deletion
  • Complying with data history retention requirements

Enable Versioning for a Bucket

Step 1: Go to Simple Storage → Buckets, then click the name of the bucket where you want to enable Versioning.

Step 2: Open the Versioning tab in the bucket management section.

Enable Versioning for Bucket

Step 3: Toggle Enable Versioning on (or select Enabled from the dropdown).

Step 4: Confirm in the warning dialog — the system warns that enabling Versioning affects storage costs (since multiple versions are retained).

Step 5: Click Confirm to complete.

After enabling, the status displays as Versioning: Enabled.

Once Versioning is enabled, you cannot completely remove it — you can only Suspend it. When Suspended, new objects still receive a version ID of null, but old versions are preserved.

How Versioning Works

Uploading an Object

When you upload an object with the same name (key) as an existing object:

  • The system creates a new version with a unique Version ID (e.g., a1b2c3d4e5f6...)
  • The new version becomes the current version
  • The old version becomes a noncurrent version
  • All versions are stored and billed

Deleting an Object

When you delete an object in a versioned bucket:

  • The system does not actually delete it — instead, it creates a Delete Marker
  • The Delete Marker becomes the current version
  • The object "disappears" from the normal listing, but can still be recovered

To permanently delete a specific version, you must specify both the object name and the Version ID.

View and Manage Object Versions

Step 1: In the bucket's object list, enable Show Versions.

Step 2: Each object now displays its versions, including:

InfoDescription
Version IDUnique version identifier
LatestMarks this as the current version
SizeSize of this version
Last ModifiedTime this version was created
Is Delete MarkerWhether this is a Delete Marker

Restore an Old Version

Option 1: Download the Old Version

Step 1: Enable Show Versions to see all versions.

Step 2: Find the version you want to restore and select Download on that version.

Step 3: Re-upload the downloaded file to create a new version (making it the current version).

Option 2: Delete the Delete Marker

If an object has been "deleted" (has a Delete Marker as the current version), you can restore it by deleting the Delete Marker:

Step 1: Enable Show Versions.

Step 2: Find the Delete Marker (the version marked as Latest with a delete icon).

Step 3: Select the Delete Marker → select Delete version (delete this Delete Marker).

Step 4: The previous version automatically becomes the current version — the object is restored.

Permanently Delete a Specific Version

Step 1: Enable Show Versions.

Step 2: Find the version to permanently delete.

Step 3: Select Delete this version.

Step 4: Confirm deletion. This permanently deletes that version — it cannot be recovered.

Suspend Versioning

When Versioning is suspended:

  • Newly uploaded objects receive a version ID of null (overwriting the existing null version, if any)
  • Old versions (created before Suspend) are preserved
  • Storage costs still apply to retained versions

Step 1: Open the Versioning tab of the bucket.

Step 2: Click Suspend and confirm.

Control Costs When Using Versioning

Versioning stores all versions, including old versions and Delete Markers — this increases storage costs. Combine with Lifecycle Rules to automatically delete old versions:

  • Delete noncurrent versions after 30 days
  • Keep only the 3 most recent versions
  • Remove unnecessary Delete Markers

See the guide at Bucket Lifecycle.