From 033b8e6b21c9a818cf7a62e851fede71cb5bb33b Mon Sep 17 00:00:00 2001 From: Max <33969759+MaXeraph@users.noreply.github.com> Date: Tue, 23 Mar 2021 11:14:29 -0400 Subject: [PATCH] fix: S3 copyObject usage - Missing bucket name (#3745) * Fix copyObject usage: supply bucket name * No semicolon * Assign empty string on initialization * Remove empty line --- server/modules/storage/s3/common.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server/modules/storage/s3/common.js b/server/modules/storage/s3/common.js index c34e2451..fa1bc5dc 100644 --- a/server/modules/storage/s3/common.js +++ b/server/modules/storage/s3/common.js @@ -22,6 +22,7 @@ const getFilePath = (page, pathKey) => { module.exports = class S3CompatibleStorage { constructor(storageName) { this.storageName = storageName + this.bucketName = "" } async activated() { // not used @@ -56,6 +57,7 @@ module.exports = class S3CompatibleStorage { } this.s3 = new S3(s3Config) + this.bucketName = bucket // determine if a bucket exists and you have permission to access it await this.s3.headBucket().promise() @@ -89,7 +91,7 @@ module.exports = class S3CompatibleStorage { destinationFilePath = `${page.destinationLocaleCode}/${destinationFilePath}` } } - await this.s3.copyObject({ CopySource: sourceFilePath, Key: destinationFilePath }).promise() + await this.s3.copyObject({ CopySource: `${this.bucketName}/${sourceFilePath}`, Key: destinationFilePath }).promise() await this.s3.deleteObject({ Key: sourceFilePath }).promise() } /** @@ -117,7 +119,7 @@ module.exports = class S3CompatibleStorage { */ async assetRenamed (asset) { WIKI.logger.info(`(STORAGE/${this.storageName}) Renaming file from ${asset.path} to ${asset.destinationPath}...`) - await this.s3.copyObject({ CopySource: asset.path, Key: asset.destinationPath }).promise() + await this.s3.copyObject({ CopySource: `${this.bucketName}/${asset.path}`, Key: asset.destinationPath }).promise() await this.s3.deleteObject({ Key: asset.path }).promise() } async getLocalLocation () {