带有multer-3S的AWS lambda上传不受支持的图像文件。但是本地服务器正确上传

时间:2018-09-13 13:45:17

标签: amazon-web-services amazon-s3 aws-lambda serverless

我尝试将图像上传到AWS S3。在我的本地环境(与生产环境相同的代码)中,图像成功上传到S3,我可以下载该图像。

但是通过lambda环境,可以很好地上传到S3,但是该图像无法下载。该图片甚至比通过本地服务器上传的图片更大。

我在两种环境之间使用相同的IAM。这是不可触摸的图片网址(lambda向上颠倒)

can't be download image url

这是可触摸的图片网址

can be download image url

请帮助我。

ps,我的s3政策在这里

{
"Version": "2012-10-17",
"Id": "Policy1536755128154",
"Statement": [
    {
        "Sid": "Stmt1536755126539",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::elebooks-image/*"
    },
    {
        "Sid": "Stmt1536827281212",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::elebooks-image"
    }
]

}

我的服务器代码

 export const bookCoverUploader = multer({
  storage: multerS3({
    s3: s3,
    bucket: bookCoverBucket,
    key: function (req, file, cb) {
      let extension = path.extname(file.originalname);
      cb(
        null,
        path.basename(file.originalname, extension) + Date.now().toString() + extension
      );
    },
    acl: 'public-read-write'
  })
});

0 个答案:

没有答案