上传后,s3上的图像损坏。但是本地是好的工作

问题描述 投票:0回答:1

重问

环境:swift,Nodejs,s3,lambda,aws-serverless-express模块​​

  1. 问题:

当我在快速使用Alamofire(multipart / form-data)在本地服务器上上传图像时,该图像非常好,可以上传并显示预览,也可以完全下载。但是,如果我使用lambda作为服务器(带有api-gateway)来上传图像,则上传的图像不会显示给我。只需发送错误消息,例如“此文件已损坏或此文件不支持预览格式”。原因上传完全在lambda上完成。但我无法获得图像。

如果我单击s3网页上的Object Url链接。该网页向我显示问号。

代码:本地服务器,lambda服务器相同

let photoKey = value.originalname + insertedReviewId + `_${i}.jpeg`
let photoParam = {
    Bucket: bucket,
    Key: photoKey,
    Body: value.buffer,
    ACL: "public-read-write",
    ContentType: value.mimetype, /* minetype: image/jpege */
};

//image upload 
let resultUploadS3 = await s3.upload(photoParam).promise();

你知道会发生什么吗?

  1. 问题

第二个是ACL。

我想建议设置AWS ACL。我希望IAM用户分配对象的读取,写入,更新。 “ public-read-write”正确吗?

感谢阅读

node.js amazon-web-services amazon-s3 aws-lambda api-gateway
1个回答
0
投票

自我回答

我使用aws-serverless-express,对于中间件,使用aws-serverless-express /中间件。

我不知道是什么问题,但是,我删除了工作正常的aws-serverless-express /中间件模块。所有图像完美上传,而不损坏文件。

如果您在Node.js上使用aws-serverless-express / middleware,body-parser,multer,请尝试删除aws-serverless-express / middleware。

© www.soinside.com 2019 - 2024. All rights reserved.