2016-11-16 90 views
0

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

我怎么能允许HTML页面(由servlet生成)从谷歌云存储在图像不是公共共享下载几个图像?

我期望的是,当broswers下载html页面时,它会直接从云存储请求图像,但是我怎样才能允许broswer在没有使图像公共共享的情况下做到这一点?

感谢

回答

1

这是棘手,但可能。如果您想管理某种可以查看GCS映像的授权方案,那么您需要一项服务,该服务可以向您的服务决定授权的各方出售短期签名URL。然后,将URL嵌入动态生成的HTML页面的图像标记中,或者使用JavaScript从服务器获取URL。

的gcloud-Java库具有用于生成这样一个URL一个signURL方法。

另一种选择是简单地混淆图像的URL的东西难以猜测并经常转动他们每。

+0

谢谢,它解决了我的问题,谢谢 –

+0

网址URL = storage.signUrl( \t \t \t \t \t \t \t BlobInfo.builder( “桶”, “img.jpg”)。建(), \t \t \t \t \t \t \t 10, \t \t \t \t \t \t \t TimeUnit.SECONDS, \t \t \t \t \t \t \t SignUrlOption.signWith(ServiceAccountCredentials.fromStream(新的FileInputStream(的keyPath))) \t \t \t \t \t \t \t); \t \t \t \t \t \t \t \t \t \t \t \t字符串imgPath = url.toString(); \t \t \t \t \t //out.write("Img path =“+ imgPath +”
“); \t \t \t \t \t \t \t \t \t \t \t \t out.write( “
”); –

相关问题