Bucket versioning is the capability to store the history of an object using versions. Each version is a complete copy of the object and occupies space in Object Storage. By using version control, you can protect your data from both unintentional user actions and application faults.
Versioning is enabled at the bucket level and applied to every object in the bucket.
For more information about how to enable versioning, see Managing bucket versioning.
After you enable this feature, the
version_idparameter is added to each uploaded object. It lets you manage specific object versions.
Before versioning is enabled, each bucket object is assigned a version ID (
version_id) equal to
When versioning is paused, the
version_idof existing objects no longer changes. Each new object is assigned a version ID of
null. If a
nullversion already exists, it's overwritten.
When you overwrite an object version, a new object with the same ID and a randomly generated
To access a previous version of the object, use the object ID and the desired
Enabling versioning is irreversible. You can't disable versioning later, but you can stop creating new versions. After you pause versioning, new objects are saved as
When you delete an object version, a delete marker is added to the version and it no longer takes up space.
You can remove unneeded or deleted object versions from a bucket manually or by setting up the object lifecycle.