Join the S3 prefix to every key with one slash (closes #222)
check / check (push) Successful in 11m42s
check / check (push) Successful in 11m42s
The S3 client built each key as prefix + key, and the URL parser keeps the prefix as written, so s3://bucket/p stored p + "blobs/..." with no slash while s3://bucket/p/ stored p/blobs/.... A recovery host that wrote the URL the other way found no snapshots. NewClient now strips trailing slashes from the prefix and adds one back when anything is left, giving the README layout for both URL forms; an empty prefix stays at the bucket root. The s3.prefix config setting goes through the same client and gets the same join. A new test writes and lists through each URL shape against an in-process S3 server and checks the keys in the bucket. Model: opus-5-5
This commit is contained in:
@@ -22,6 +22,14 @@ the tag exists and is exercised; what is left is merging `next` to
|
||||
|
||||
# Completed Steps
|
||||
|
||||
- 2026-10-06: Made `s3://bucket/prefix` and `s3://bucket/prefix/` the same
|
||||
destination ([issue #222](https://git.eeqj.de/sneak/vaultik/issues/222)).
|
||||
The S3 client put the prefix directly in front of each key, so a prefix
|
||||
without a trailing slash stored `prefixblobs/...`. A non-empty prefix is
|
||||
now joined to every key with one `/`, giving the README's
|
||||
`<bucket>/<prefix>/blobs/...` layout. The `s3.prefix` config setting goes
|
||||
through the same client and gets the same join.
|
||||
|
||||
- 2026-10-06: Made `go.mod` what `go mod tidy` writes, so the
|
||||
pre-commit hook no longer stops every commit
|
||||
([issue #246](https://git.eeqj.de/sneak/vaultik/issues/246)). A test
|
||||
|
||||
Reference in New Issue
Block a user