【发布时间】:2016-11-16 09:36:24
【问题描述】:
我有一个计算引擎和谷歌云存储一起工作。 计算引擎有一个运行的 tomcat,允许浏览器加载页面并从谷歌云存储中获取图像。
我如何允许 html 页面(由 servlet 生成)从谷歌云存储中下载多个图像,这些图像不是公共共享的??
我期望的是,当浏览器下载 html 页面时,它会直接从云存储中请求图像,但我怎样才能允许浏览器在不使图像公开共享的情况下做到这一点?
谢谢
【问题讨论】:
我有一个计算引擎和谷歌云存储一起工作。 计算引擎有一个运行的 tomcat,允许浏览器加载页面并从谷歌云存储中获取图像。
我如何允许 html 页面(由 servlet 生成)从谷歌云存储中下载多个图像,这些图像不是公共共享的??
我期望的是,当浏览器下载 html 页面时,它会直接从云存储中请求图像,但我怎样才能允许浏览器在不使图像公开共享的情况下做到这一点?
谢谢
【问题讨论】:
这很棘手,但可能。如果您想管理某种授权方案来确定哪些人可以查看 GCS 图像,哪些人不能查看 GCS 图像,您需要一项服务,该服务可以向您的服务决定授权的各方提供短期签名 URL。然后将 URL 嵌入到动态生成的 HTML 页面的图像标签中,或者使用 JavaScript 从服务器获取 URL。
gcloud-java 库有一个 signURL 方法来生成这样的 URL。
另一种选择是简单地将图像 URL 混淆为无法猜测的内容,并经常轮换它们。
【讨论】: