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.

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:
| Info | Description |
|---|---|
| Version ID | Unique version identifier |
| Latest | Marks this as the current version |
| Size | Size of this version |
| Last Modified | Time this version was created |
| Is Delete Marker | Whether 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 existingnullversion, 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.