From 8acc9ef0aef985d0a4eed9f47c31e5808cd2aef8 Mon Sep 17 00:00:00 2001 From: Simon Detheridge Date: Mon, 17 Feb 2020 13:50:21 +0000 Subject: [PATCH] Make S3 partSize a setting --- services/filestore/app/js/S3Persistor.js | 2 +- services/filestore/config/settings.defaults.coffee | 1 + services/filestore/test/acceptance/js/FilestoreTests.js | 9 ++++++--- services/filestore/test/unit/js/S3PersistorTests.js | 3 ++- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/services/filestore/app/js/S3Persistor.js b/services/filestore/app/js/S3Persistor.js index 6e71d95b0d..fc505ccfbb 100644 --- a/services/filestore/app/js/S3Persistor.js +++ b/services/filestore/app/js/S3Persistor.js @@ -96,7 +96,7 @@ async function sendStream(bucketName, key, readStream, sourceMd5) { } const response = await _getClientForBucket(bucketName) - .upload(uploadOptions, { partSize: 100 * 1024 * 1024 }) + .upload(uploadOptions, { partSize: settings.filestore.s3.partSize }) .promise() let destMd5 = _md5FromResponse(response) if (!destMd5) { diff --git a/services/filestore/config/settings.defaults.coffee b/services/filestore/config/settings.defaults.coffee index bb124ae8e0..05a45f816d 100644 --- a/services/filestore/config/settings.defaults.coffee +++ b/services/filestore/config/settings.defaults.coffee @@ -38,6 +38,7 @@ settings = key: process.env['AWS_ACCESS_KEY_ID'] secret: process.env['AWS_SECRET_ACCESS_KEY'] endpoint: process.env['AWS_S3_ENDPOINT'] + partSize: process.env['S3_PARTSIZE'] or (100 * 1024 * 1024) stores: user_files: process.env['USER_FILES_BUCKET_NAME'] diff --git a/services/filestore/test/acceptance/js/FilestoreTests.js b/services/filestore/test/acceptance/js/FilestoreTests.js index 7e57764cc4..ccef80bc01 100644 --- a/services/filestore/test/acceptance/js/FilestoreTests.js +++ b/services/filestore/test/acceptance/js/FilestoreTests.js @@ -57,7 +57,8 @@ const BackendSettings = { key: process.env.AWS_ACCESS_KEY_ID, secret: process.env.AWS_SECRET_ACCESS_KEY, endpoint: process.env.AWS_S3_ENDPOINT, - pathStyle: true + pathStyle: true, + partSize: 100 * 1024 * 1024 }, stores: { user_files: process.env.AWS_S3_USER_FILES_BUCKET_NAME, @@ -71,7 +72,8 @@ const BackendSettings = { key: process.env.AWS_ACCESS_KEY_ID, secret: process.env.AWS_SECRET_ACCESS_KEY, endpoint: process.env.AWS_S3_ENDPOINT, - pathStyle: true + pathStyle: true, + partSize: 100 * 1024 * 1024 }, stores: { user_files: process.env.AWS_S3_USER_FILES_BUCKET_NAME, @@ -102,7 +104,8 @@ const BackendSettings = { key: process.env.AWS_ACCESS_KEY_ID, secret: process.env.AWS_SECRET_ACCESS_KEY, endpoint: process.env.AWS_S3_ENDPOINT, - pathStyle: true + pathStyle: true, + partSize: 100 * 1024 * 1024 }, stores: { user_files: Path.resolve(__dirname, '../../../user_files'), diff --git a/services/filestore/test/unit/js/S3PersistorTests.js b/services/filestore/test/unit/js/S3PersistorTests.js index f0a075de3c..07bda746bc 100644 --- a/services/filestore/test/unit/js/S3PersistorTests.js +++ b/services/filestore/test/unit/js/S3PersistorTests.js @@ -53,7 +53,8 @@ describe('S3PersistorTests', function() { backend: 's3', s3: { secret: defaultS3Secret, - key: defaultS3Key + key: defaultS3Key, + partSize: 100 * 1024 * 1024 }, stores: { user_files: 'sl_user_files'