Skip to content

Commit f1c12e6

Browse files
mrmarcsmithArthur Cinader
authored andcommitted
S3 overrides as option (#50)
* Added "s3Overrides as option in dictionary" test * Pass S3Overrides as a Dictionary Option
1 parent 65ec931 commit f1c12e6

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

lib/optionsFromArguments.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,20 @@ function requiredOrFromEnvironment(options, key, env) {
1212

1313
function fromEnvironmentOrDefault(options, key, env, defaultValue) {
1414
options[key] = options[key] || process.env[env] || defaultValue;
15+
// If we used the overrides,
16+
// make sure they take priority
17+
if(options.s3overrides){
18+
if(options.s3overrides[key]){
19+
options[key] = options.s3overrides[key];
20+
}else if (options.s3overrides.params && options.s3overrides.params.Bucket) {
21+
options.bucket = options.s3overrides.params.Bucket;
22+
}
23+
}
24+
return options;
25+
}
26+
27+
function fromOptionsDictionaryOrDefault(options, key, defaultValue) {
28+
options[key] = options[key] || defaultValue;
1529
return options;
1630
}
1731

@@ -64,6 +78,7 @@ const optionsFromArguments = function optionsFromArguments(args) {
6478
}
6579
}
6680

81+
options = fromOptionsDictionaryOrDefault(options, 's3overrides', s3overrides);
6782
options = requiredOrFromEnvironment(options, 'bucket', 'S3_BUCKET');
6883
options = fromEnvironmentOrDefault(options, 'accessKey', 'S3_ACCESS_KEY', null);
6984
options = fromEnvironmentOrDefault(options, 'secretKey', 'S3_SECRET_KEY', null);
@@ -75,7 +90,6 @@ const optionsFromArguments = function optionsFromArguments(args) {
7590
options = fromEnvironmentOrDefault(options, 'signatureVersion', 'S3_SIGNATURE_VERSION', 'v4');
7691
options = fromEnvironmentOrDefault(
7792
options, 'globalCacheControl', 'S3_GLOBAL_CACHE_CONTROL', null);
78-
options.s3overrides = s3overrides;
7993

8094
return options;
8195
}

spec/test.spec.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,15 @@ describe('S3Adapter tests', () => {
123123
expect(options.bucketPrefix).toEqual('test/');
124124
});
125125

126+
it('should accept options and overrides as an option in args', () => {
127+
var confObj = { bucketPrefix: 'test/', bucket: 'bucket-1', secretKey: 'secret-1', accessKey: 'key-1' ,s3overrides: { secretAccessKey: 'secret-2', accessKeyId: 'key-2', params: { Bucket: 'bucket-2' }} };
128+
var s3 = new S3Adapter(confObj);
129+
expect(s3._s3Client.config.accessKeyId).toEqual('key-2');
130+
expect(s3._s3Client.config.secretAccessKey).toEqual('secret-2');
131+
expect(s3._s3Client.config.params.Bucket).toEqual('bucket-2');
132+
expect(s3._bucketPrefix).toEqual('test/');
133+
});
134+
126135
it('should accept options and overrides as args', () => {
127136
var confObj = { bucketPrefix: 'test/', bucket: 'bucket-1', secretKey: 'secret-1', accessKey: 'key-1' };
128137
var overridesObj = { secretAccessKey: 'secret-2', accessKeyId: 'key-2', params: { Bucket: 'bucket-2' }};

0 commit comments

Comments
 (0)