提交表格时,我正在上传图像aws s3。但是此图像在页面重新加载后不会显示。但是,如果我刷新一下,图像就在那里。
我正在使用async等待来等待s3上传完成,然后转到下一个这样的中间件:
...
await s3.upload(params, function (err, data) {
if (err) {
console.log('%%%%%%%%%%%%%%% error in callback');
console.log(err);
}
console.log('****************** success');
console.log(data);
});
next()
在将图像上传到s3之前,我使用sharp
库调整了图像的大小,但是我认为这与问题无关:
exports.resize = async (req, res, next) => {
// check if there is no new file to resize
if (!req.file) {
next(); // skip to the next middlewaree
return;
}
const extension = req.file.mimetype.split('/')[1]
req.body.photo = `${uuid.v4()}.${extension}`
let readyimg
const imageAws = await sharp(req.file.buffer)
.resize(800, 800)
.toBuffer()
.then( data => {
readyimg = data
})
AWS.config.update({
secretAccessKey: process.env.SECRETACCESSKEY,
accessKeyId: process.env.ACCESSKEYID,
region: 'us-east-1'
})
const s3 = new AWS.S3()
const params = {
Bucket: 'jamsession-images',
Key: req.body.photo,
Body: readyimg
};
await s3.upload(params, function (err, data) {
if (err) {
console.log(err);
}
console.log(data);
});
next()
};
我确实记录了数据,因为s3上传成功完成,然后转到下一个中间件并刷新了页面,但是未显示图像,只有在我重新加载页面后,它才显示图像任何想法是问题吗?