Загрузить изображение на Amazon S3 возвращает 400 плохих запросов - PullRequest
0 голосов
/ 28 января 2019

При загрузке всегда возвращается 400 Bad Request.Я использую multer для загрузки изображений в s3

Это моя политика корзины

{
    "Version": "2012-10-17",
    "Id": "Policy1548648592430",
    "Statement": [
        {
            "Sid": "Stmt1548648588327",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::237240578789:user/megatron.578@gmail.com"
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::test-test-bucket-test/*"
        }
    ]
}

Multer:

const uploadImage = multer({
  storage: multerS3({
    s3, // compose of aws key, secret key and bucket name
    bucket: 'test-test-bucket-test',
    region: 'us-east-2',
    acl: 'public-read',
    key(req, file, cb) {
      cb(
        null,
        `images/${path.basename(
          file.originalname,
          path.extname(file.originalname),
        )}-${Date.now()}${path.extname(file.originalname)}`,
      );
    },
  }),
  limits: { fileSize: 2000000 },
  fileFilter(req, file, cb) {
    checkFileType(file, cb);
  },
}).array('images', 3);

Маршрутизатор:

router.post('/uploadImages', (req, res) => {
  uploadImage(req, res, error => {
    if (error) {
      console.log(error);
      res.status(400).send({ Errors: error });
    } else {
      if (req.files === undefined) {
        res.status(400).send({ Errors: 'No File Selected' });
      }
      // If Success
      const { files } = req;
      let fileLocation = null;
      const locArray = [];
      for (let i = 0; i < files.length; i += 1) {
        fileLocation = files[i].location;
        locArray.push(fileLocation);
      }
      // Save the file name into database
      res.send({
        success: true,
        files,
      });
    }
  });

});

Я просто следую также руководству по загрузке.Он всегда возвращает 400 неверных запросов о статусе, и не может просмотреть ответ, в котором говорится, что разрешение отклонено.

...