add support for vhost/dns style bucket access #154
No reviewers
Labels
No labels
action
check-aws
action
discussion-needed
action
for-external-contributors
action
for-newcomers
action
more-info-needed
action
need-funding
action
triage-required
kind
correctness
kind
ideas
kind
improvement
kind
performance
kind
testing
kind
usability
kind
wrong-behavior
prio
critical
prio
low
scope
admin-api
scope
background-healing
scope
build
scope
documentation
scope
k8s
scope
layout
scope
metadata
scope
ops
scope
rpc
scope
s3-api
scope
security
scope
telemetry
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Deuxfleurs/garage#154
Loading…
Reference in a new issue
No description provided.
Delete branch "trinity-1686a/garage:vhost-style"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
fix #137
I moved some code arround so it's not duplicated between s3 and web.
f0681dea33
to2e70257d29
I have some doubt on the correctness of key extraction on some edge-case : if a path starts with
//some-key
, it gets translated tosome-key
. Maybe it should be/some-key
instead? (stripping only the first /)Indeed, I also think that we should only strip one slash. Ideally, we should do some tests with Amazon implementation / look how minio handles this case :)
tested with minio. It seems to have the same behavior
pcap capture shows PUT being diriged to
/minio-test//////cpuinfo.txt
, and answer to ListObject is<Key>cpuinfo.txt</Key>
, so it appears all/
should be stripped.In general, multiple
/
may be subject to path normalisation (nginx, by default, compress multiples/
in a single one), so the caller should probably not rely on/
being kept@ -30,6 +30,7 @@ sled_flush_every_ms = 2000
[s3_api]
api_bind_addr = "[::]:3900"
s3_region = "garage"
root_domain = ".3.garage"
".s3.garage"
?changes were tested using mcli (read and list object, write is blocked by #64) and rclone (read, write and list). Other endpoints were not tested, but should hopefully work
Thanks for the PR :)