fix: S3 copyObject usage - Missing bucket name (#3745)

* Fix copyObject usage: supply bucket name

* No semicolon

* Assign empty string on initialization

* Remove empty line
This commit is contained in:
Max 2021-03-23 11:14:29 -04:00 committed by GitHub
parent 9c3cb1aa90
commit 033b8e6b21
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -22,6 +22,7 @@ const getFilePath = (page, pathKey) => {
module.exports = class S3CompatibleStorage { module.exports = class S3CompatibleStorage {
constructor(storageName) { constructor(storageName) {
this.storageName = storageName this.storageName = storageName
this.bucketName = ""
} }
async activated() { async activated() {
// not used // not used
@ -56,6 +57,7 @@ module.exports = class S3CompatibleStorage {
} }
this.s3 = new S3(s3Config) this.s3 = new S3(s3Config)
this.bucketName = bucket
// determine if a bucket exists and you have permission to access it // determine if a bucket exists and you have permission to access it
await this.s3.headBucket().promise() await this.s3.headBucket().promise()
@ -89,7 +91,7 @@ module.exports = class S3CompatibleStorage {
destinationFilePath = `${page.destinationLocaleCode}/${destinationFilePath}` 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() await this.s3.deleteObject({ Key: sourceFilePath }).promise()
} }
/** /**
@ -117,7 +119,7 @@ module.exports = class S3CompatibleStorage {
*/ */
async assetRenamed (asset) { async assetRenamed (asset) {
WIKI.logger.info(`(STORAGE/${this.storageName}) Renaming file from ${asset.path} to ${asset.destinationPath}...`) 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() await this.s3.deleteObject({ Key: asset.path }).promise()
} }
async getLocalLocation () { async getLocalLocation () {