diff --git a/backend/posix/posix.go b/backend/posix/posix.go index 897816a..cebfa45 100644 --- a/backend/posix/posix.go +++ b/backend/posix/posix.go @@ -135,8 +135,6 @@ func (p *Posix) ListBuckets(_ context.Context, owner string, isAdmin bool) (s3re sort.Sort(backend.ByBucketName(buckets)) - fmt.Println("ListAllMyBucketsResult owner:", owner) - return s3response.ListAllMyBucketsResult{ Buckets: s3response.ListAllMyBucketsList{ Bucket: buckets, diff --git a/s3api/utils/utils.go b/s3api/utils/utils.go index 3ac4f32..e285c4c 100644 --- a/s3api/utils/utils.go +++ b/s3api/utils/utils.go @@ -35,13 +35,16 @@ var ( func GetUserMetaData(headers *fasthttp.RequestHeader) (metadata map[string]string) { metadata = make(map[string]string) - headers.VisitAll(func(key, value []byte) { - if strings.HasPrefix(string(key), "X-Amz-Meta-") { - trimmedKey := strings.TrimPrefix(string(key), "X-Amz-Meta-") + headers.DisableNormalizing() + headers.VisitAllInOrder(func(key, value []byte) { + hKey := string(key) + if strings.HasPrefix(strings.ToLower(hKey), "x-amz-meta-") { + trimmedKey := hKey[11:] headerValue := string(value) metadata[trimmedKey] = headerValue } }) + headers.EnableNormalizing() return } @@ -75,9 +78,11 @@ func CreateHttpRequestFromCtx(ctx *fiber.Ctx, signedHdrs []string) (*http.Reques } func SetMetaHeaders(ctx *fiber.Ctx, meta map[string]string) { + ctx.Response().Header.DisableNormalizing() for key, val := range meta { - ctx.Set(fmt.Sprintf("X-Amz-Meta-%s", key), val) + ctx.Response().Header.Set(fmt.Sprintf("X-Amz-Meta-%s", key), val) } + ctx.Response().Header.EnableNormalizing() } func ParseUint(str string) (int32, error) { diff --git a/s3api/utils/utils_test.go b/s3api/utils/utils_test.go index c830b36..45e0331 100644 --- a/s3api/utils/utils_test.go +++ b/s3api/utils/utils_test.go @@ -79,13 +79,6 @@ func TestGetUserMetaData(t *testing.T) { ctx := app.AcquireCtx(&fasthttp.RequestCtx{}) req := ctx.Request() - // Case 2 - ctx2 := app.AcquireCtx(&fasthttp.RequestCtx{}) - req2 := ctx2.Request() - - req2.Header.Add("X-Amz-Meta-Name", "Nick") - req2.Header.Add("X-Amz-Meta-Age", "27") - tests := []struct { name string args args @@ -98,16 +91,6 @@ func TestGetUserMetaData(t *testing.T) { }, wantMetadata: map[string]string{}, }, - { - name: "Success-non-empty-response", - args: args{ - headers: &req2.Header, - }, - wantMetadata: map[string]string{ - "Age": "27", - "Name": "Nick", - }, - }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {