我尝试将图像上传到AWS S3。在我的本地环境(与生产环境相同的代码)中,图像成功上传到S3,我可以下载该图像。
但是通过lambda环境,可以很好地上传到S3,但是该图像无法下载。该图片甚至比通过本地服务器上传的图片更大。
我在两种环境之间使用相同的IAM。这是不可触摸的图片网址(lambda向上颠倒)
这是可触摸的图片网址
请帮助我。
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'
})
});