Skip to content
This repository has been archived by the owner on Jun 24, 2019. It is now read-only.

Commit

Permalink
Merge pull request #106 from bcoe/keep-encryption
Browse files Browse the repository at this point in the history
Preserve encryption headers when uploading thumbnails
  • Loading branch information
wiredmax committed Mar 10, 2016
2 parents d405e41 + 6ccaf55 commit ea35e20
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 6 deletions.
3 changes: 2 additions & 1 deletion lib/config.js
Expand Up @@ -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)
},

/**
Expand Down
8 changes: 4 additions & 4 deletions lib/grabber.js
Expand Up @@ -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]
}
}
Expand Down
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "thumbd",
"version": "2.18.0",
"version": "2.19.0",
"directories": {
"bin": "./bin",
"data": "./data",
Expand Down
16 changes: 16 additions & 0 deletions test/test-grabber.js
Expand Up @@ -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)
})
})
})

})

0 comments on commit ea35e20

Please sign in to comment.