Google云存储:在html页面中显示私有图片

时间:2014-11-26 09:03:09

标签: php google-cloud-storage

我正在使用Google Cloud Storage进行媒体宣传。我的网站存储在其他地方。我只想在我的网站上显示图像而不公开此图像。我试图像这样显示这个图像:

  • 为限制在我网站的浏览器创建API密钥(http://*.example.com的API密钥)
  • 在此网站<img src="https://www.googleapis.com/storage/v1/b/MY_BUKET/o/MY_MEDIA.jpg?key=MY_KEY" />
  • 上显示图片
  • 我可以在Chrome控制台中看到:...&#34;代码&#34;:401,&#34;消息&#34;:&#34;需要登录&#34; ...

我不明白我错过了什么,如果我从谷歌阅读文档我迷失了:我只是想以低安全性显示图片(但不公开),不从我的PHP应用程序管理我的媒体。

我可以使用google-api-php-client(我的网站是PHP版),但我不知道我是否有与此相关的功能。我不知道从哪里开始......

谢谢! (我希望它足够清楚)

编辑:我没有找到任何简单的代码示例来使用google-api-php-client在HTML中呈现私有媒体;我迷失了

2 个答案:

答案 0 :(得分:2)

“key =”参数不分配任何类型的权限。这是一个不太安全的标识符,用于告诉Google哪个项目应该为这个匿名的来电收费。它不会让您访问不公开的对象。

将非公开图片嵌入网页的唯一方法是在请求HTML页面时生成签名的URL。有关生成它们的说明,请参阅https://cloud.google.com/storage/docs/accesscontrol#Signed-URLs

答案 1 :(得分:1)

如果您的应用托管在应用引擎上,那么您可以使用CloudStorageTools::serve()功能将图像作为HTTP请求的结果返回并放入您想要的任何访问控制中。