From 57597bd103e5221dadfebccf2e72e281dfde1262 Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Tue, 11 Feb 2020 11:14:38 -0800 Subject: [PATCH] s3: bucket name cannot contain / --- src/storage/s3.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/storage/s3.js b/src/storage/s3.js index b19ee80b5..c05362be1 100644 --- a/src/storage/s3.js +++ b/src/storage/s3.js @@ -412,6 +412,9 @@ function testConfig(apiConfig, callback) { if (typeof apiConfig.secretAccessKey !== 'string') return callback(new BoxError(BoxError.BAD_FIELD, 'secretAccessKey must be a string', { field: 'secretAccessKey' })); if (typeof apiConfig.bucket !== 'string') return callback(new BoxError(BoxError.BAD_FIELD, 'bucket must be a string', { field: 'bucket' })); + // the node module seems to incorrectly accept bucket name with '/' + if (apiConfig.bucket.includes('/')) return callback(new BoxError(BoxError.BAD_FIELD, 'bucket name cannot contain "/"', { field: 'bucket' })); + if (typeof apiConfig.prefix !== 'string') return callback(new BoxError(BoxError.BAD_FIELD, 'prefix must be a string', { field: 'prefix' })); if ('signatureVersion' in apiConfig && typeof apiConfig.signatureVersion !== 'string') return callback(new BoxError(BoxError.BAD_FIELD, 'signatureVersion must be a string', { field: 'signatureVersion' })); if ('endpoint' in apiConfig && typeof apiConfig.endpoint !== 'string') return callback(new BoxError(BoxError.BAD_FIELD, 'endpoint must be a string', { field: 'endpoint' }));