From 07fed9b3e411a4c4af8deb1f4f4e7709b3de6c36 Mon Sep 17 00:00:00 2001 From: Maxime Poulin Date: Wed, 9 Mar 2016 14:53:08 -0500 Subject: [PATCH 1/2] Preserve encryption headers of the original file when uploading generated thumbnails --- lib/config.js | 3 ++- lib/grabber.js | 8 ++++---- test/test-grabber.js | 16 ++++++++++++++++ 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/lib/config.js b/lib/config.js index 6485cd9..36e4dd2 100644 --- a/lib/config.js +++ b/lib/config.js @@ -17,7 +17,8 @@ exports.Config = { logLevel: (process.env.LOG_LEVEL || 'info'), profile: !!process.env.PROFILE, metaPrefix: (process.env.META_PREFIX || 'x-amz-meta-'), - keepMeta: (process.env.META || true) + keepMeta: (process.env.META || true), + keepEncryption: (process.env.ENCRYPTION || true) }, /** diff --git a/lib/grabber.js b/lib/grabber.js index eb47eaa..e01143f 100644 --- a/lib/grabber.js +++ b/lib/grabber.js @@ -124,13 +124,13 @@ Grabber.prototype.getFileS3 = function (bucket, region, remoteImagePath, localIm }) } -// copy any x-amz-meta prefixed headers to the -// thumbnail image being created. +// copy any x-amz-meta prefixed and x-amz-server-side-encryption headers +// to the thumbnail image being created. Grabber.prototype.getMeta = function (res) { var metadata = {} - if (config.get('keepMeta')) { + if (config.get('keepMeta') || config.get('keepEncryption')) { for (var prop in res.headers) { - if (prop.slice(0, 11) === config.get('metaPrefix')) { + if (prop === 'x-amz-server-side-encryption' || prop.slice(0, 11) === config.get('metaPrefix')) { metadata[prop] = res.headers[prop] } } diff --git a/test/test-grabber.js b/test/test-grabber.js index 1e044b3..32390f5 100644 --- a/test/test-grabber.js +++ b/test/test-grabber.js @@ -27,6 +27,22 @@ describe('Grabber', function () { return done(err) }) }) + + it('should call save with x-amz-server-side-encryption returned by AWS', function (done) { + var grabber = new Grabber() + var mockDownload = nock('https://my-bucket.s3.amazonaws.com') + .defaultReplyHeaders({ + 'x-amz-server-side-encryption': 'AES256' + }) + .get('/foo/awesome.jpg') + .reply(200, 'abc123') + + grabber.download('my-bucket', 'us-east-1', '/foo/awesome.jpg', function (err, data, headers) { + mockDownload.done() + assert.equal(headers['x-amz-server-side-encryption'], 'AES256') + return done(err) + }) + }) }) }) From 6ccaf55485797b0ad775b9630fb053e6f8470219 Mon Sep 17 00:00:00 2001 From: Maxime Poulin Date: Thu, 10 Mar 2016 13:42:19 -0500 Subject: [PATCH 2/2] 2.19.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ba8faa2..0bf69bc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "thumbd", - "version": "2.18.0", + "version": "2.19.0", "directories": { "bin": "./bin", "data": "./data",