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
.Important
Because.s3-versioning~
is a normal, hidden directory, visible and accessible to other protocols. To ensure consistent S3 API behavior, we strongly recommend avoiding the use of other protocols to write to the directory. Any protocol can read from the directory safely. -
An object with the object store key
dir/obj
has two versions:12345a6b-7c89-0d12-3456-78fe9012f345
andabcde1f2-g3hi-j4kl-mnop-qr56stuv7wxy
.Note
- To access a specific version of a file by using CLI or REST API, specify the version ID.
- To access the head version (current version) of a file, omit the omit the version ID.
-
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>