Просмотр исходного кода

Merge pull request #3333 from weseek/imprv/bulk-attachment-to-delete-in-aws.js

multiple delete attachments in aws.js
Yuki Takei 5 лет назад
Родитель
Сommit
cdabded761
1 измененных файлов с 14 добавлено и 3 удалено
  1. 14 3
      src/server/service/file-uploader/aws.js

+ 14 - 3
src/server/service/file-uploader/aws.js

@@ -116,16 +116,27 @@ module.exports = function(crowi) {
   };
 
   lib.deleteFiles = async function(attachments) {
-    attachments.map((attachment) => {
-      return this.deleteFile(attachment);
+    if (!this.getIsUploadable()) {
+      throw new Error('AWS is not configured.');
+    }
+    const s3 = S3Factory();
+    const awsConfig = getAwsConfig();
+
+    const filePaths = attachments.map((attachment) => {
+      return { Key: getFilePathOnStorage(attachment) };
     });
+
+    const totalParams = {
+      Bucket: awsConfig.bucket,
+      Delete: { Objects: filePaths },
+    };
+    return s3.deleteObjects(totalParams).promise();
   };
 
   lib.deleteFileByFilePath = async function(filePath) {
     if (!this.getIsUploadable()) {
       throw new Error('AWS is not configured.');
     }
-
     const s3 = S3Factory();
     const awsConfig = getAwsConfig();