Skip to content

Commit a2bc445

Browse files
s3: fix metadata not being returned upon download
1 parent b45662c commit a2bc445

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

internal/test/e2e/s3_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,9 +200,9 @@ func TestS3ObjectMetadata(t *testing.T) {
200200
}
201201

202202
// perform GET request
203-
// obj, err := cluster.S3Aws.GetObject(api.DefaultBucketName, t.Name(), getObjectOptions{})
204-
// tt.OK(err)
205-
// assertMetadata(metadata, obj.metadata)
203+
obj, err := cluster.S3Aws.GetObject(api.DefaultBucketName, t.Name(), getObjectOptions{})
204+
tt.OK(err)
205+
assertMetadata(metadata, obj.metadata)
206206

207207
// assert metadata is set on HEAD request
208208
get, err := cluster.S3Aws.HeadObject(api.DefaultBucketName, t.Name())

worker/s3/backend.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -271,14 +271,15 @@ func (s *s3) GetObject(ctx context.Context, bucketName, objectName string, range
271271
}
272272
}
273273

274-
// ensure metadata is not nil
275-
if res.Metadata == nil {
276-
res.Metadata = make(map[string]string)
274+
// set user metadata
275+
metadata := make(map[string]string)
276+
for k, v := range res.Metadata {
277+
metadata[amazonMetadataPrefix+k] = v
277278
}
278279

279280
// decorate metadata
280-
res.Metadata["Content-Type"] = res.ContentType
281-
res.Metadata["Last-Modified"] = res.LastModified.Std().Format(http.TimeFormat)
281+
metadata["Content-Type"] = res.ContentType
282+
metadata["Last-Modified"] = res.LastModified.Std().Format(http.TimeFormat)
282283

283284
// etag to bytes
284285
etag, err := hex.DecodeString(res.Etag)
@@ -289,7 +290,7 @@ func (s *s3) GetObject(ctx context.Context, bucketName, objectName string, range
289290
return &gofakes3.Object{
290291
Hash: etag,
291292
Name: gofakes3.URLEncode(objectName),
292-
Metadata: res.Metadata,
293+
Metadata: metadata,
293294
Size: res.Size,
294295
Contents: res.Content,
295296
Range: objectRange,

0 commit comments

Comments
 (0)