通过反应将图像上传到hapi.js到s3上,可以在本地主机上完美运行,但在状态码为408(超时)的AWS ec2上失败。
我尝试禁用AWS超时并增加api超时。它适用于小尺寸图像,但不适用于尺寸大于5mb的图像
反应代码-
data.append('file', imagesToUpload[0]);
await axios.post('/hall/images', data, {
headers: {
'content-type': 'multipart/form-data'
}
})
Hapi api代码-
const uploadImages = {
payload: {
allow: 'multipart/form-data',
maxBytes: 1048576*120
},
validate: {
payload: {
file: joi.any().required(),
},
},
handler: async (req, h) => {
const {file} = req.payload;
const options = {queueSize: 1};
const params = {
ACL: 'public-read',
Body: file,
ContentType: 'multipart/form-data',
Bucket: `***`,
Key: Date.now().toString()
};
return s3.upload(params, options).promise();
}
答案 0 :(得分:0)
如果较小尺寸的图像可以上传,则您的端口和安全组可能很好。如果在较大的图像上失败,您是否尝试过分段上传?
https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html