From 0d8a4f5791cbe2f886c9b3f1bb5534d58286ea5a Mon Sep 17 00:00:00 2001 From: Ben McClelland Date: Mon, 11 Mar 2024 21:01:37 -0700 Subject: [PATCH] fix: remove namespace restrictions on tag xml input Fixes #447. Previously we required XML namespace and got these errors with this input: DEBUG: mykeymyvalue DEBUG: expected element in name space http://s3.amazonaws.com/doc/2006-03-01/ but have no name space --- s3api/controllers/base.go | 4 ++-- s3response/s3response.go | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/s3api/controllers/base.go b/s3api/controllers/base.go index 7332c2c..254cffe 100644 --- a/s3api/controllers/base.go +++ b/s3api/controllers/base.go @@ -615,7 +615,7 @@ func (c S3ApiController) PutBucketActions(ctx *fiber.Ctx) error { if ctx.Request().URI().QueryArgs().Has("tagging") { parsedAcl := ctx.Locals("parsedAcl").(auth.ACL) - var bucketTagging s3response.Tagging + var bucketTagging s3response.TaggingInput err := xml.Unmarshal(ctx.Body(), &bucketTagging) if err != nil { return SendResponse(ctx, s3err.GetAPIError(s3err.ErrInvalidRequest), @@ -922,7 +922,7 @@ func (c S3ApiController) PutActions(ctx *fiber.Ctx) error { } if ctx.Request().URI().QueryArgs().Has("tagging") { - var objTagging s3response.Tagging + var objTagging s3response.TaggingInput err := xml.Unmarshal(ctx.Body(), &objTagging) if err != nil { return SendResponse(ctx, s3err.GetAPIError(s3err.ErrInvalidRequest), diff --git a/s3response/s3response.go b/s3response/s3response.go index 937c163..48cce3e 100644 --- a/s3response/s3response.go +++ b/s3response/s3response.go @@ -112,6 +112,10 @@ type Tagging struct { TagSet TagSet `xml:"TagSet"` } +type TaggingInput struct { + TagSet TagSet `xml:"TagSet"` +} + type DeleteObjects struct { Objects []types.ObjectIdentifier `xml:"Object"` }