From 9b989970d0cfe4fcf30803d57603a86913844033 Mon Sep 17 00:00:00 2001 From: jonaustin09 Date: Thu, 29 Feb 2024 16:06:13 -0500 Subject: [PATCH] fix: Fixes #420, Fixed bucket creation bug, which contains closing / in the url --- s3api/middlewares/acl-parser.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/s3api/middlewares/acl-parser.go b/s3api/middlewares/acl-parser.go index ee53028f..f0346088 100644 --- a/s3api/middlewares/acl-parser.go +++ b/s3api/middlewares/acl-parser.go @@ -16,6 +16,7 @@ package middlewares import ( "net/http" + "regexp" "strings" "github.com/aws/aws-sdk-go-v2/service/s3" @@ -26,6 +27,10 @@ import ( "github.com/versity/versitygw/s3log" ) +var ( + singlePath = regexp.MustCompile(`^/[^/]+/?$`) +) + func AclParser(be backend.Backend, logger s3log.AuditLogger) fiber.Handler { return func(ctx *fiber.Ctx) error { isRoot, acct := ctx.Locals("isRoot").(bool), ctx.Locals("account").(auth.Account) @@ -38,8 +43,7 @@ func AclParser(be backend.Backend, logger s3log.AuditLogger) fiber.Handler { if ctx.Method() == http.MethodPatch { return ctx.Next() } - if len(pathParts) == 2 && - pathParts[1] != "" && + if singlePath.MatchString(path) && ctx.Method() == http.MethodPut && !ctx.Request().URI().QueryArgs().Has("acl") && !ctx.Request().URI().QueryArgs().Has("tagging") &&