谷歌云存储:在html页面中显示私有图像


Google cloud storage : Display private image in html page

我正在使用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控制台中看到:..."代码":401,"消息":"需要登录"...

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

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

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

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

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

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

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