Node.js 节点Js上传到S3时出错:TypeError[错误\无效\参数\类型]
我正在尝试将一个图像上传到我的AmazonS3存储桶,但我一直收到错误消息 TypeError[ERR_INVALID_ARG_TYPE]:第一个参数必须是string、Buffer、ArrayBuffer、Array、, 或类似数组的对象 所以基本上我知道我必须把它改成一个缓冲区,在一些搜索之后,我尝试了一些解决方案,但没有一个有效,有人能帮我指出我出了什么问题吗Node.js 节点Js上传到S3时出错:TypeError[错误\无效\参数\类型],node.js,amazon-s3,Node.js,Amazon S3,我正在尝试将一个图像上传到我的AmazonS3存储桶,但我一直收到错误消息 TypeError[ERR_INVALID_ARG_TYPE]:第一个参数必须是string、Buffer、ArrayBuffer、Array、, 或类似数组的对象 所以基本上我知道我必须把它改成一个缓冲区,在一些搜索之后,我尝试了一些解决方案,但没有一个有效,有人能帮我指出我出了什么问题吗 const s3Client = s3.s3Client; const params = s3.uploadParams;
const s3Client = s3.s3Client;
const params = s3.uploadParams;
//const fileContent = fs.readFileSync(req.file); <-- tried this and still gave the same error
var fileContent = Buffer.from(req.file, 'base64')
params.Key = req.file.filename
params.Body = fileContent
console.log(req.file)
s3Client.upload(params, (err, data) => {
if (err) {
res.status(500).json({error:"Error -> " + err});
}
res.json({message: 'File uploaded successfully! -> keyname = ' + req.file.originalname});
});
我不太确定,但我想你在用multer? 如果您使用的是multer,那么基本上可以使用req.file.buffer 我的建议是,如果图像很大,使用流而不是缓冲区
{
fieldname: 'image',
originalname: 'Kimmi.jpg',
encoding: '7bit',
mimetype: 'image/jpeg',
destination: './images/',
filename: 'c6b46e20-4efc-11ea-8b6a-1b4d698f6335.jpeg',
path: 'images\\c6b46e20-4efc-11ea-8b6a-1b4d698f6335.jpeg',
size: 35920
}