Skip to main content

Overview

Enable versioning on a container to retain all previous versions of objects. Each time an object is overwritten, the previous version is preserved in a linked archive container. This protects against accidental overwrites and provides a manual recovery mechanism.
Prerequisites
  • An active Xloud account with appropriate permissions
  • Access to the Xloud Dashboard (https://connect.<your-domain>) or CLI configured with credentials
  • API credentials sourced (source admin-openrc.sh)
Versioning must be enabled before overwrites occur — it cannot be applied retroactively. Objects overwritten before versioning was enabled have no archived versions.

How Versioning Works


Enable Versioning

1

Create the archive container

Create a separate container to store previous versions. Navigate to Project → Object Store → Containers and click + Container. Name it app-backups-versions (or similar).
Create the archive container before enabling versioning on the primary container. The archive container must already exist.
2

Enable versioning on the primary container

Navigate to the primary container settings, click Edit, and enable Object Versioning. Specify the archive container name.

Recover a Previous Version

When an object is overwritten, the previous version is stored in the archive container with a name that includes the original object name and a timestamp prefix.
List archived versions
openstack object list app-backups-versions | grep object.tar.gz
Download a specific archived version
openstack object save app-backups-versions \
  "app-backups/object.tar.gz/001t<timestamp>"
To restore a version, copy it back to the primary container:
Restore an archived version
# Download the archived version
openstack object save app-backups-versions \
  "app-backups/object.tar.gz/001t<timestamp>" \
  --file /tmp/restored.tar.gz

# Re-upload to the primary container
openstack object create app-backups /tmp/restored.tar.gz \
  --name object.tar.gz

Disable Versioning

Disable versioning
openstack container set \
  --property "X-Versions-Location=" \
  app-backups
Disabling versioning stops archiving new overwrites but does not remove existing archived versions. The archive container and its contents remain and accrue storage costs.

Next Steps

Upload Objects

Upload and manage objects within versioned containers

Access Control

Configure ACLs on both primary and archive containers

Large Objects

Handle files over 5 GB with SLO and DLO mechanisms

Troubleshooting

Resolve versioning configuration and recovery issues