我正在上传一个图像(upload.single('file')是Multer中间件。),一个用于nodeJs的Koa框架。一切都可以在localhost上运行,但不能在prod环境上运行。这是产品环境的路径。 enter image description here
产品环境: Cliet-> Api网关-> NLB-> S3存储桶服务。
localhost env:向S3存储桶的隐秘服务。
问题是图像的大小在上传到S3存储桶之前可以使用时会增加,并且图像会变形(237kb增加到418kb)。但是使用localhost一切正常。我以邮递员为客户上传图片。
async create(ctx: Context, values: any): Promise<any> {
// The image size increased before sending to S3 bucket
console.log('REQUEST----', values.file)
const params = {
Bucket: env.Bucket,
Key: `images/${values.file.originalname}`,
Body: values.file.buffer,
ACL: 'public-read',
ContentType: values.file.mimetype,
ContentLength: values.file.size,
}
try {
const data = await s3.putObject(params).promise();
console.log('Successfully uploaded file.', data);
return true;
} catch(e) {
ctx.throw(HttpStatusCodes.InternalServerError, {
message: `Something went wrong when updating advertisement` + e,
});
}
}