diff --git a/lib/data/external/AwsClient.js b/lib/data/external/AwsClient.js index a6aa79f992..e91549ed81 100644 --- a/lib/data/external/AwsClient.js +++ b/lib/data/external/AwsClient.js @@ -219,14 +219,13 @@ class AwsClient { metaHeadersTrimmed[headerKey] = metaHeaders[header]; } }); - Object.assign(metaHeaders, metaHeadersTrimmed); const awsBucket = this._awsBucketName; const awsKey = this._createAwsKey(bucketName, key, this._bucketMatch); const params = { Bucket: awsBucket, Key: awsKey, WebsiteRedirectLocation: websiteRedirectHeader, - Metadata: metaHeaders, + Metadata: metaHeadersTrimmed, ContentType: contentType, CacheControl: cacheControl, ContentDisposition: contentDisposition, diff --git a/lib/routes/routeBackbeat.js b/lib/routes/routeBackbeat.js index fc248ab106..0ea52675dc 100644 --- a/lib/routes/routeBackbeat.js +++ b/lib/routes/routeBackbeat.js @@ -424,8 +424,8 @@ function initiateMultipartUpload(request, response, log, callback) { const contentDisposition = request.headers['x-scal-content-disposition']; const contentEncoding = request.headers['x-scal-content-encoding']; const metaHeaders = { - 'scal-replication-status': 'REPLICA', - 'scal-version-id': sourceVersionId, + 'x-amz-meta-scal-replication-status': 'REPLICA', + 'x-amz-meta-scal-version-id': sourceVersionId, }; if (userMetadata !== undefined) { try { diff --git a/tests/multipleBackend/multipartUpload.js b/tests/multipleBackend/multipartUpload.js index 299ba21722..ccd064d70b 100644 --- a/tests/multipleBackend/multipartUpload.js +++ b/tests/multipleBackend/multipartUpload.js @@ -41,7 +41,7 @@ const bucketName = 'bucketname'; const awsBucket = config.locationConstraints[awsLocation].details.bucketName; const smallBody = Buffer.from('I am a body', 'utf8'); const bigBody = Buffer.alloc(10485760); -const locMetaHeader = 'x-amz-meta-scal-location-constraint'; +const locMetaHeader = 'scal-location-constraint'; const bucketPutRequest = { bucketName, namespace, @@ -222,7 +222,8 @@ function assertObjOnBackend(expectedBackend, objectKey, cb) { return objectGet(authInfo, getObjectGetRequest(zenkoObjectKey), false, log, (err, result, metaHeaders) => { assert.equal(err, null, `Error getting object on S3: ${err}`); - assert.strictEqual(metaHeaders[locMetaHeader], expectedBackend); + assert.strictEqual(metaHeaders[`x-amz-meta-${locMetaHeader}`], + expectedBackend); if (expectedBackend === awsLocation) { return s3.headObject({ Bucket: awsBucket, Key: objectKey }, (err, result) => {