仅对 gcs 使用经过身份验证的网址,而不设置“console.cloud.google.com”引荐来源网址

Sim*_*rey 11 google-cloud-storage google-cloud-platform

我希望有人可以帮助我弄清楚如何在 gcs 中使用经过身份验证的 URL。


我想要存档的内容:

  1. 我想向某人发送经过身份验证的 gcs 链接(未预先签名):例如https://storage.cloud.google.com/XXX/happy-simon.png
  2. 该人需要登录他们的 Google 帐户
  3. 如果他们有适当的权限,他们可以下载该文件

问题:

当我尝试访问 GCS 的经过身份验证的 URL 时,它们在浏览器中不起作用,但仅当设置了标头“referer:https: //console.cloud.google.com/”时才起作用。


如何重现:

  1. 上传文件到gcs
  2. 至少授予自己对该文件的读取权限(无论如何,在上传该文件时您应该是所有者)
  3. 尝试通过“经过身份验证的网址”下载 在此输入图像描述

3.1)当我点击谷歌云控制台中的链接时,下载工作没有问题

3.2) 当我复制 url 并在新选项卡中打开它时,出现 403 错误

在控制台上使用curl进行测试,我发现两个调用之间的区别在于-H 'referer: https://console.cloud.google.com/'是否设置了。如果我设置它,来自新选项卡的调用也可以工作。