Google cloud storage 允许broswer从谷歌云存储下载图像?

Google cloud storage 允许broswer从谷歌云存储下载图像?,google-cloud-storage,Google Cloud Storage,我有一个计算引擎和谷歌云存储一起工作。 计算引擎运行tomcat,允许浏览器加载页面并从google云存储中获取图像 我如何允许html页面(由servlet生成)从google云存储下载多个图像,而这些图像不是公共共享的 我所期望的是,当broswer下载html页面时,它将直接从云存储请求图像,但我如何允许broswer这样做而不使图像公开共享 谢谢这很棘手,但也有可能。如果您想为能够和不能查看GCS图像的用户管理某种授权方案,您需要一种服务,该服务可以向您的服务确定已授权的用户提供短期的签

我有一个计算引擎和谷歌云存储一起工作。 计算引擎运行tomcat,允许浏览器加载页面并从google云存储中获取图像

我如何允许html页面(由servlet生成)从google云存储下载多个图像,而这些图像不是公共共享的

我所期望的是,当broswer下载html页面时,它将直接从云存储请求图像,但我如何允许broswer这样做而不使图像公开共享


谢谢

这很棘手,但也有可能。如果您想为能够和不能查看GCS图像的用户管理某种授权方案,您需要一种服务,该服务可以向您的服务确定已授权的用户提供短期的签名URL。然后将URL嵌入动态生成的HTML页面的图像标记中,或者使用JavaScript从服务器获取URL

gcloudjava库有一个生成这样一个URL的方法


另一种选择是简单地将图像URL混淆为不可用的内容,并每隔一段时间对其进行旋转。

这很棘手,但也是可能的。如果您想为能够和不能查看GCS图像的用户管理某种授权方案,您需要一种服务,该服务可以向您的服务确定已授权的用户提供短期的签名URL。然后将URL嵌入动态生成的HTML页面的图像标记中,或者使用JavaScript从服务器获取URL

gcloudjava库有一个生成这样一个URL的方法

另一种方法是简单地将图像URL混淆为不可用的内容,并经常旋转它们。

URL URL=storage.signUrl(BlobInfo.builder(“bucket”、“img.jpg”).build(),10,TimeUnit.SECONDS,SignUrlOption.signWith(ServiceAccountCredentials.fromStream(新文件输入流(keyPath));字符串imgPath=url.toString();//out.write(“Img path=“+imgPath+”
”);out.write(
”);url=storage.signUrl(BlobInfo.builder(“bucket”,“Img.jpg”).build(),10,TimeUnit.SECONDS,SignUrlOption.signWith(ServiceAccountCredentials.fromStream(新文件输入流(keyPath));字符串imgPath=url.toString();//out.write(“Img path=“+imgPath+”
”);out.write(
”;