From f435880fe8fb92b26a23d02e57dd248338fc1648 Mon Sep 17 00:00:00 2001 From: niksis02 Date: Fri, 19 Sep 2025 20:53:00 +0400 Subject: [PATCH] fix: removes trailing / for bucket operations in host-style parser For bucket operations a typical host-style request looks like `bucket.host/`. `HostStyleParser` parses the bucket from host header and appends in the path, by changing the requests to `path-styled`. For bucket operations the original request path is `bucket.host/`, after reconsturction it looks like `/bucket/`: a trailing `/` is added at the end. The PR adds a check to not append this trailing `/` at the end for bucket operations, to keep consistency with path-style requests. --- s3api/middlewares/host-style-parser.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/s3api/middlewares/host-style-parser.go b/s3api/middlewares/host-style-parser.go index f670caf..5f6445b 100644 --- a/s3api/middlewares/host-style-parser.go +++ b/s3api/middlewares/host-style-parser.go @@ -32,6 +32,10 @@ func HostStyleParser(virtualDomain string) fiber.Handler { return ctx.Next() } path := ctx.Path() + if path == "/" { + // omit the trailing / for bucket operations + path = "" + } pathStyleUrl := fmt.Sprintf("/%v%v", bucket, path) ctx.Path(pathStyleUrl)