通过heroku将图像保存到AWS S3

时间:2018-10-08 12:06:14

标签: node.js heroku amazon-s3

如您所见,当尝试直接上传时,我正在使用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的路径,图片没有上传到我的存储桶中。我不知道此后的下一步,文档会帮助我直到这一阶段

0 个答案:

没有答案