Updated on 2026-08-21 GMT+08:00

Enabling, Suspending, and Viewing Versioning

Scenarios

By default, versioning is disabled for a new OBS bucket. New objects with the same name will overwrite existing objects in the bucket.

A versioning-enabled bucket can retain multiple versions of an object, making it easier to retrieve and restore any version. This feature also helps you quickly recover data in the event of accidental actions or application failures. You can enable versioning for a bucket or resume versioning if it has been suspended.

Versioning cannot be disabled once it is enabled. If you no longer need this function, you can suspend it instead.

Constraints

  • Once versioning is enabled for a bucket, it cannot be disabled, but it can be suspended.
  • Before enabling bucket-level WORM, you must enable versioning. Configuring WORM on OBS Console automatically enables versioning for the bucket, and versioning cannot be suspended afterward. When configuring WORM using APIs, you must first call the API that enables versioning for the bucket.
  • ACLs, server-side encryption, and tags cannot be configured for historical object versions.

Billing

Versioning itself is free. However, storing the current version (excluding the delete marker) and all historical versions of each object incurs storage costs. To avoid unnecessary storage costs, delete objects promptly. You can either delete them manually or configure lifecycle rules to automate deletion.

Configuring Versioning

You can use OBS Console, APIs, or SDKs to configure versioning for a bucket. You cannot use OBS Browser+ or obsutil to do so.

Viewing Object Versions (When Versioning Is Enabled or Suspended)

Before viewing object versions, make sure versioning has been enabled or suspended for your bucket.

You can use OBS Console, APIs, SDKs, or obsutil to view object versions. You cannot use OBS Browser+ to do so.