Versioning
- Console
- API
- CLI
- Go
The Versioning card on the bucket’s Settings tab shows the current
state and offers Enable and Suspend.
never configured
The bucket has no versioning history. On the S3 wire this is reported by
omitting the status element entirely, which is how S3 itself reports it.
every write creates a version
Deletes write a delete marker instead of removing bytes.
GET /v1/buckets/{bucket}/object-versions lists versions and delete markers
together.was on, now off
Existing versions are kept; new writes stop creating them. This is
distinct from
disabled, and the distinction matters: suspending does not
delete history.Enabled and Suspended in its XML. Either spelling is
accepted on input.
Object Lock and retention
On a bucket created withobject_lock_enabled, individual objects can carry a
retention mode and a retain-until date, set at upload with
X-Amz-Object-Lock-Mode and X-Amz-Object-Lock-Retain-Until-Date, or afterwards
through the ?retention sub-resource.
GOVERNANCE
Retention can be shortened or a locked object deleted, but only by a caller
who sends
X-Amz-Bypass-Governance-Retention: true and holds
storage:BypassGovernanceRetention on the object.COMPLIANCE
Nothing bypasses it. A
?retention write that would move the date earlier
is refused, so retention can only ever be extended.?legal-hold) is independent of the retention date: while it is
on, the object cannot be deleted regardless of when retention expires. A delete
blocked by either shows up as 403, not a silent no-op.
In the console both live on the object itself: its Properties tab has a
Retention card (Mode, Retain until) and a Legal hold switch,
and Save changes applies them together. Shortening a GOVERNANCE date
offers the bypass as a switch rather than making you send the header. The
upload page has no object-lock fields, though, so setting retention at
upload is API only.