В любом случае, чтобы распаковать и загрузить массив файлов в AWS S3, используя multer (multer s3) в Nodejs - PullRequest
1 голос
/ 17 января 2020

Вот как я загружаю файлы в AWS S3:

const config = (req) => {
  limits: { fileSize: 20000000 }, // 20 MB
  storage: multerS3({
    acl: 'public-read',
    bucket: `${Bucket}/${orderNumber}/orderFiles`,
    key(request, file, cb) {
      cb(null, `${file.originalname}`);
    },
    metadata(request, file, cb) {
      cb(null, {});
    },
    s3,
  }),
}

uploadFiles = async req => {
  try {
    const uploadOrder = multer(config(req)).array('files');

    return new Promise((resolve, reject) => {
      uploadOrder(req, {}, error => {
        const fileArray = req.files;
        let fileLocation;

        fileArray.forEach(file => {
          fileLocation = file.location;
        });

        resolve(fileArray[0].bucket);
      });
    });
  } catch (error) {
    return error;
  }
};

И затем:

router.post('/addFiles', auth.admin, async (req, res, next) => {
  try {
    await uploadFiles(req);
    // handle rest of the things...

    res.send();
  } catch (error) {
    next(error);
  }
});

Есть ли способ проверить, является ли файл zip и тогда я могу разархивировать и загрузить каждый отдельный файл zip на s3? Я обернулся вокруг inte rnet и не смог заставить его работать.

...