Add idempotent object deletion

This commit is contained in:
2026-09-05 12:22:44 +00:00
parent 7f84fc5d1e
commit 14b4fee214
10 changed files with 143 additions and 9 deletions

View File

@@ -16,6 +16,7 @@ operator-selected storage fields and credential mechanisms belong in
- `Download(ctx, key, localPath)`
- `Upload(ctx, localPath, key, opts)`
- `UploadConditional(ctx, source, key, opts, condition)`
- `Delete(ctx, key)` removes one object and succeeds when it is already absent
- `Exists(ctx, key)`
Key invariant:
@@ -47,6 +48,8 @@ not own discovery, defaults, or configuration validation.
- `Read` binds a returned body to its S3 ETag. `UploadConditional` maps an ETag
match or absence precondition directly to the provider request and reports a
failed precondition without performing a local check-then-write replacement.
- `Delete` maps one normalized key to the provider delete-object operation and
treats an absent object as success.
- `Exists` maps not-found responses to `false`.
## Invariants

View File

@@ -84,7 +84,7 @@ message. Update documentation alongside observable changes.
## Stage 1 — Add Idempotent Object Deletion
**Status:** Pending
**Status:** Completed
### Goal