Javascript 如何在浏览器中显示从云存储下载的图像?
目前,我从我的云存储桶下载图像,在base64中编码,然后在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);
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我最担心的是一个黑客让我的云存储下载账单爆炸。