Javascript 如何在浏览器中显示从云存储下载的图像?

Javascript 如何在浏览器中显示从云存储下载的图像?,javascript,node.js,google-cloud-platform,google-cloud-storage,Javascript,Node.js,Google Cloud Platform,Google Cloud Storage,目前,我从我的云存储桶下载图像,在base64中编码,然后在img标记的src属性中传递数据uri 还有别的办法吗 router.post('/images', function(req, res, next) { var image = bucket.file(req.body.image); image.download(function(err, contents) { if (err) { console.log(err);

目前,我从我的云存储桶下载图像,在base64中编码,然后在
img
标记的
src
属性中传递数据uri

还有别的办法吗

router.post('/images', function(req, res, next) {
    var image = bucket.file(req.body.image);
    image.download(function(err, contents) {
        if (err) {
            console.log(err);
        } else {
            var resultImage = base64_encode(contents);
            var index = req.body.index;
            var returnObject = {
                image: resultImage,
                index: index
            }
            res.send(returnObject);
        }
    });
});

图像是否公开可读?如果是这样,你可以使用

<img src="http://<bucket>.storage.googleapis.com/<object>">
.storage.googleapis.com/“>

否则,您将需要为GET操作生成一个可用于图像标记的URL。

遗憾的是,出于安全原因,我不想使用这两个选项。任何人都可以点击这些URL以使我的后端屈服。您能否澄清您对签名URL的担忧?在服务器端生成签名URL是有成本的,但除非你需要每秒生成数千个URL,即使是一台非常小的机器也应该可以管理。@BrandonYarbrough这是关于安全性的。任何人都可以从我的网站上合法地获得一个签名URL,然后用bot或僵尸网络点击该URL数百万次。然后在当前URL过期时获得另一个签名URL,依此类推。Tha这就是我目前从服务器上的bucket下载图像的原因。除了我的服务器之外,没有人可以访问我的bucket。唯一的问题是加载64位编码的图像有点慢,所以我想知道是否还有其他更安全的解决方案。@BrandonYarbrough似乎你没有用@ping我,我没有收到你的m我最担心的是一个黑客让我的云存储下载账单爆炸。