This section explains how Amazon S3 Versioning works in Qumulo Core and how to configure S3 bucket versioning by using the Qumulo REST API or qq CLI or by using the S3 API directly.

You can configure S3 bucket versioning by using the Qumulo REST API or qq CLI. For more information, see qq s3_modify_bucket in the Qumulo qq CLI Command Guide. You can also use the S3 API directly.

For information about S3 bucket versioning limits, see Supported Functionality and Limits.

How Bucket Versioning works in Qumulo Core

Qumulo Core stores S3 object versions as independent files in the file system. Qumulo Core names these versions by using their version ID.

In the following example:

  • The versioned files are stored in /dir/.s3-versioning~/obj.

  • An object with the object store key dir/obj has two versions: 12345a6b-7c89-0d12-3456-78fe9012f345 and abcde1f2-g3hi-j4kl-mnop-qr56stuv7wxy.

  • The system-created hard link points to the latest version of the object.

  • The on-disk representation is as follows:

    /
    └── dir/
        ├── .s3-versioning~/
        |   └── obj/
        |       ├── 12345a6b-7c89-0d12-3456-78fe9012f345
        |       └── abcde1f2-g3hi-j4kl-mnop-qr56stuv7wxy
        └── obj <hardlink: /dir/.s3-versioning~/obj/12345a6b-7c89-0d12-3456-78fe9012f345>