From d13791f5ce2e2081eb044df8d74ae5558712ef7c Mon Sep 17 00:00:00 2001 From: niksis02 Date: Fri, 28 Feb 2025 00:43:51 +0400 Subject: [PATCH] fix: Adds quotes for object Etags --- backend/azure/azure.go | 4 ++-- backend/common.go | 4 ++-- backend/posix/posix.go | 2 +- tests/integration/utils.go | 3 +-- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/backend/azure/azure.go b/backend/azure/azure.go index 679d95b0..6ced4ae6 100644 --- a/backend/azure/azure.go +++ b/backend/azure/azure.go @@ -563,7 +563,7 @@ Pager: break Pager } objects = append(objects, s3response.Object{ - ETag: (*string)(v.Properties.ETag), + ETag: backend.GetPtrFromString(fmt.Sprintf("%q", *v.Properties.ETag)), Key: v.Name, LastModified: v.Properties.LastModified, Size: v.Properties.ContentLength, @@ -645,7 +645,7 @@ Pager: break Pager } objects = append(objects, s3response.Object{ - ETag: (*string)(v.Properties.ETag), + ETag: backend.GetPtrFromString(fmt.Sprintf("%q", *v.Properties.ETag)), Key: v.Name, LastModified: v.Properties.LastModified, Size: v.Properties.ContentLength, diff --git a/backend/common.go b/backend/common.go index b1e44f1d..0e98aedd 100644 --- a/backend/common.go +++ b/backend/common.go @@ -152,8 +152,8 @@ func GetMultipartMD5(parts []types.CompletedPart) string { for _, part := range parts { partsEtagBytes = append(partsEtagBytes, getEtagBytes(*part.ETag)...) } - s3MD5 := fmt.Sprintf("%s-%d", md5String(partsEtagBytes), len(parts)) - return s3MD5 + + return fmt.Sprintf("\"%s-%d\"", md5String(partsEtagBytes), len(parts)) } func getEtagBytes(etag string) []byte { diff --git a/backend/posix/posix.go b/backend/posix/posix.go index 52a5c152..394c439e 100644 --- a/backend/posix/posix.go +++ b/backend/posix/posix.go @@ -2814,7 +2814,7 @@ func (p *Posix) PutObject(ctx context.Context, po *s3.PutObjectInput) (s3respons } dataSum := hash.Sum(nil) - etag := hex.EncodeToString(dataSum[:]) + etag := fmt.Sprintf("\"%v\"", hex.EncodeToString(dataSum[:])) // if the versioning is enabled, generate a new versionID for the object var versionID string diff --git a/tests/integration/utils.go b/tests/integration/utils.go index c533e042..60713e6a 100644 --- a/tests/integration/utils.go +++ b/tests/integration/utils.go @@ -368,10 +368,9 @@ func putObjects(client *s3.Client, objs []string, bucket string) ([]types.Object return nil, err } k := key - etag := strings.Trim(*res.ETag, `"`) contents = append(contents, types.Object{ Key: &k, - ETag: &etag, + ETag: res.ETag, StorageClass: types.ObjectStorageClassStandard, Size: &size, })