AWS S3 getSignedUrl InvalidRequest

时间:2018-06-24 03:46:41

标签: node.js amazon-web-services amazon-s3

我将图像存储在s3存储桶中,这些是私人照片。

目前,我可以通过以下方式获取图片网址:

getSignedUrl('getObject', params, callback);

然后,我将URL嵌入到图像src=''字符串(express,pug)中。但是,我收到无效的请求错误并且没有图像。如何正确获取图片网址并将其嵌入html中?

index.js

app.get('/', (req, res) => {
    s3.getSignedUrl('getObject', {
        Bucket: Bucket,
        Key: Key
    }, (err, url) => {
        res.render('index', {
            img: url
        })
    })
})

index.pug

html
    head
        title example
    body
        img(src="" + img)

我正在学习AWS开发工具包。

如何从Node.js将s3图片网址嵌入img src?

1 个答案:

答案 0 :(得分:0)

我想出了一个解决方案。而不是尝试将实际的url嵌入到s3存储桶中,并将对象嵌入到pug渲染中。我有一个单独的图像获取,返回字节流本身:

app.get('/img.jpg', (req, res) => {
    s3.getObject({...}, (err, data) => {
        ...
        res.send(data.Body)
    })
})