如您所见,当尝试直接上传时,我正在使用aws s3,因为这是heroku中的唯一方法,所以我按照此处的说明Direct to S3 File Upload in nodejs
这是我的server.js的样子
//Public Folder app.use(express.static('./public'));
// configure aws region aws.config.region = 'eu-west-1';
//load the s3 information const S3_BUCKET = process.env.S3_BUCKET; app.get('/upload-cover', (req, res) => {
const s3 = new aws.S3();
const fileName = req.query['file-name'];
const fileType = req.query['file-type'];
const s3Params = {
Bucket: S3_BUCKET,
Key: fileName,
Expires: 60,
ContentType: fileType,
ACL: 'public-read'
};
s3.getSignedUrl('putObject', s3Params, (err, data) => {
if(err){
return res.end();
}
const returnData = {
signedRequest: data,
url: `https://${S3_BUCKET}.s3.amazonaws.com/${fileName}`
};
res.write(JSON.stringify(returnData));
res.end();
}); });
i跟进文档,并说上面的代码返回JSON,其中包含临时签名的S3请求和图像的预期URL。
我尝试上传一张图片1.jpg,它返回了https://bucketlist.s3.amazonaws./1.jpg
,然后我将该网址保存到了我的数据库中,当我尝试显示未显示的图片时,我尝试了返回no such key
的路径,图片没有上传到我的存储桶中。我不知道此后的下一步,文档会帮助我直到这一阶段