![John Dickinson](/assets/img/avatar_default.png)
Object versioning in swift is implemented by setting a flag on the container to tell swift to version all objects in the container. The flag is the ``X-Versions-Location`` header on the container, and its value is the container where the versions are stored. When data is ``PUT`` into a versioned container (a container with the versioning flag turned on), the existing data in the file is redirected to a new object and the data in the ``PUT`` request is saved as the data for the versioned object. The new object name (for the previous version) is ``<versions_container>/<object_name>/<timestamp>``, where the timestamp is generated by converting the ``Last-Modified`` header value of the current version to a unix timestamp. A ``GET`` to a versioned object will return the current version of the object without having to do any request redirects or metadata lookups. Change-Id: I4fcd723145e02bbb2ec1d3ad356713f5dea43b8b
2.0 KiB
2.0 KiB
Welcome to Swift's documentation!
Swift is a highly available, distributed, eventually consistent object/blob store. Organizations can use Swift to store lots of data efficiently, safely, and cheaply.
This documentation is generated by the Sphinx toolkit and lives in the source tree. Additional documentation on Swift and other components of OpenStack can be found on the OpenStack wiki.
getting_started
Overview and Concepts
overview_architecture overview_ring overview_reaper overview_auth overview_replication ratelimit overview_large_objects overview_object_versioning overview_container_sync overview_expiring_objects
Developer Documentation
development_guidelines development_saio development_auth
Administrator Documentation
howto_installmultinode deployment_guide admin_guide debian_package_guide
Source Documentation
ring proxy account container db object misc
Indices and tables
genindex
modindex
search