From 90ac0af544d46fa34249d94c970e27488f30340f Mon Sep 17 00:00:00 2001 From: The Nguyen <6950941+treoden@users.noreply.github.com> Date: Fri, 3 Nov 2023 08:44:53 +0700 Subject: [PATCH 1/2] Cloud storage for assets #256 --- .../api/fileBrowser/azureFileBrowser.js | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/azure_file_storage/api/fileBrowser/azureFileBrowser.js b/packages/azure_file_storage/api/fileBrowser/azureFileBrowser.js index 22c39d7a3..539f6be48 100644 --- a/packages/azure_file_storage/api/fileBrowser/azureFileBrowser.js +++ b/packages/azure_file_storage/api/fileBrowser/azureFileBrowser.js @@ -42,25 +42,24 @@ module.exports = async (request, response, delegate, next) => { for await (const blob of blobs) { const blobName = blob.name; const blobUrl = `${containerClient.url}/${blobName}`; - - // Get the subfolder or file name within the directory const relativePath = blobName.substring(path.length); - - // Check if it's a subfolder or file const slashIndex = relativePath.indexOf('/'); if (slashIndex === -1) { // It's a file - files.push({ - name: relativePath, - url: blobUrl - }); + if (blob.properties.contentLength) { + files.push({ + name: relativePath, + url: blobUrl + }); + } } else { // It's a subfolder const subfolder = relativePath.substring(0, slashIndex); - subfolders.add(subfolder); + if (subfolder !== '') { + subfolders.add(subfolder); + } } } - // Send the response with the uploaded image details response.status(OK).json({ data: { folders: Array.from(subfolders), @@ -69,7 +68,6 @@ module.exports = async (request, response, delegate, next) => { }); } catch (error) { debug('critical', error); - // Return an error response if there was an error uploading the images response.status(INTERNAL_SERVER_ERROR); response.json({ error: { From 091da7a3b38043ecdfe5b5913b0a6b565bca8cff Mon Sep 17 00:00:00 2001 From: The Nguyen <6950941+treoden@users.noreply.github.com> Date: Fri, 3 Nov 2023 14:59:58 +0700 Subject: [PATCH 2/2] Cloud storage for assets #256 --- .../api/imageUpload/[multerFile]azureBlob.js | 4 ++-- .../product_image_added/azureGenerateProductImageVariant.js | 2 +- packages/s3_file_storage/api/fileBrowser/awsFileBrowser.js | 2 +- packages/s3_file_storage/api/fileDelete/awsFileDelete.js | 2 +- .../s3_file_storage/api/imageUpload/[multerFile]awsUpload.js | 2 +- .../product_image_added/awsGenerateProductImageVariant.js | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/azure_file_storage/api/imageUpload/[multerFile]azureBlob.js b/packages/azure_file_storage/api/imageUpload/[multerFile]azureBlob.js index 55652c7f7..79bd3e971 100644 --- a/packages/azure_file_storage/api/imageUpload/[multerFile]azureBlob.js +++ b/packages/azure_file_storage/api/imageUpload/[multerFile]azureBlob.js @@ -9,7 +9,7 @@ const { let blobServiceClient; let containerName; -if (getConfig('file_storage') === 'azure') { +if (getConfig('system.file_storage') === 'azure') { blobServiceClient = BlobServiceClient.fromConnectionString( getEnv('AZURE_STORAGE_CONNECTION_STRING') ); @@ -18,7 +18,7 @@ if (getConfig('file_storage') === 'azure') { module.exports = async (request, response, delegate, next) => { // If the file storage is not Azure, call the next middleware function - if (getConfig('file_storage') !== 'azure') { + if (getConfig('system.file_storage') !== 'azure') { next(); } else { try { diff --git a/packages/azure_file_storage/subscribers/product_image_added/azureGenerateProductImageVariant.js b/packages/azure_file_storage/subscribers/product_image_added/azureGenerateProductImageVariant.js index baeb0f361..0a83e4ab6 100644 --- a/packages/azure_file_storage/subscribers/product_image_added/azureGenerateProductImageVariant.js +++ b/packages/azure_file_storage/subscribers/product_image_added/azureGenerateProductImageVariant.js @@ -45,7 +45,7 @@ async function resizeAndUploadImage( } module.exports = async function azureGenerateProductImageVariant(data) { - if (getConfig('file_storage') === 'azure') { + if (getConfig('system.file_storage') === 'azure') { try { const containerName = getEnv('AZURE_STORAGE_CONTAINER_NAME', 'images'); const originalBlobUrl = data.origin_image; diff --git a/packages/s3_file_storage/api/fileBrowser/awsFileBrowser.js b/packages/s3_file_storage/api/fileBrowser/awsFileBrowser.js index 156cde2ee..7017f66b8 100644 --- a/packages/s3_file_storage/api/fileBrowser/awsFileBrowser.js +++ b/packages/s3_file_storage/api/fileBrowser/awsFileBrowser.js @@ -12,7 +12,7 @@ const bucketName = getEnv('AWS_BUCKET_NAME'); module.exports = async (request, response, delegate, next) => { // If the file storage is not S3, skip this middleware - if (getConfig('file_storage') !== 's3') { + if (getConfig('system.file_storage') !== 's3') { next(); } else { try { diff --git a/packages/s3_file_storage/api/fileDelete/awsFileDelete.js b/packages/s3_file_storage/api/fileDelete/awsFileDelete.js index ae7227179..d4fd48051 100644 --- a/packages/s3_file_storage/api/fileDelete/awsFileDelete.js +++ b/packages/s3_file_storage/api/fileDelete/awsFileDelete.js @@ -15,7 +15,7 @@ const s3Client = new S3Client({ region: getEnv('AWS_REGION') }); const bucketName = getEnv('AWS_BUCKET_NAME'); module.exports = async (request, response, delegate, next) => { - if (getConfig('file_storage') !== 's3') { + if (getConfig('system.file_storage') !== 's3') { next(); } else { try { diff --git a/packages/s3_file_storage/api/imageUpload/[multerFile]awsUpload.js b/packages/s3_file_storage/api/imageUpload/[multerFile]awsUpload.js index c8ee8767e..ea1e7cdb0 100644 --- a/packages/s3_file_storage/api/imageUpload/[multerFile]awsUpload.js +++ b/packages/s3_file_storage/api/imageUpload/[multerFile]awsUpload.js @@ -13,7 +13,7 @@ const bucketName = getEnv('AWS_BUCKET_NAME'); module.exports = async (request, response, delegate, next) => { // If the file storage is not S3, call the next middleware function - if (getConfig('file_storage') !== 's3') { + if (getConfig('system.file_storage') !== 's3') { next(); } else { const imageFiles = request.files; diff --git a/packages/s3_file_storage/subscribers/product_image_added/awsGenerateProductImageVariant.js b/packages/s3_file_storage/subscribers/product_image_added/awsGenerateProductImageVariant.js index a08ed80e6..bf9dc8036 100644 --- a/packages/s3_file_storage/subscribers/product_image_added/awsGenerateProductImageVariant.js +++ b/packages/s3_file_storage/subscribers/product_image_added/awsGenerateProductImageVariant.js @@ -59,7 +59,7 @@ async function resizeAndUploadImage( } module.exports = async function awsGenerateProductImageVariant(data) { - if (getConfig('file_storage') === 's3') { + if (getConfig('system.file_storage') === 's3') { try { const s3Client = new S3Client({ region: getEnv('AWS_REGION') }); const originalObjectUrl = data.origin_image;