Nodejs-multer-S3的AmazonS3 Bucket策略问题



我创建了一个api,用nodejs、multer和multer-s3将图像上传到amazons3 bucket。它在开发过程中运行良好,向我返回可下载和访问的图像URL响应,但当我在Aws Lambda(API网关(上托管节点应用程序时,API会向我返回与图像URL相同的响应,但这一次当我打开下载的图像时,它会显示我无效文件格式

这是我的代码

const uploadImage = async (req,res) => {
let myFile = req.file.originalname.split(".")
const fileType = myFile[myFile.length - 1]
const params = {
Bucket: 'test-bucket2601',
Key: `${Date.now()}.${fileType}`,
Body: req.file.buffer
}
s3.upload(params, (error, data) => {
if(error){
res.status(500).send(error)
}
res.json({data})

})

}

中间件的路径

routes.route('/upload').post(upload,uploadImage);

在post方法中,第一个参数是上传中间件

中间件代码:

const s3 = new aws.S3({
credentials: {
accessKeyId: awsKeys?.accessKeyId,
secretAccessKey: awsKeys?.secretAccessKey 
}
});
const storage = multer.memoryStorage({
destination: function(req, file, callback) {
callback(null, '')
}})
const upload = multer({storage}).single('imageUrl')

感谢您的发帖。请将responseType属性附加为";阵列缓冲器";以请求标头。它会起作用的。非常感谢。

最新更新