尝试访问 GCS 存储桶但收到“403 - Forbidden”错误消息

Trying to access GCS bucket but getting a `403 - Forbidden` error message

我希望在正确的权限设置方面获得帮助,以便从 Colab 应用程序访问我的文件。

目标

我希望能够从 Colab python 笔记本访问 CGS 存储桶中的个人图像 运行 Tensorflow 的“任意样式的样式转换”演示。

情况

我设置了一个 GCS 存储桶,public,并且能够检索文件并在演示中使用它们。

为了避免 public 可以访问 GCS 存储桶,我删除了 allUsers 并更改为与 Colab 和 GCS 绑定的 account/email。

这导致了以下错误消息:

错误信息

Exception: URL fetch failure on https://storage.googleapis.com/01_bucket-02/Portrait-Ali-02-PXL_20220105_233524809.jpg: 403 -- Forbidden

其他方法

我正在尝试了解我应该如何处理这个问题。

是URL问题吗?

'Authenticated URL' 导致上述 403 错误。

https://storage.cloud.google.com/01_bucket-02/Portrait_82A6118_r01.png

还有 gsutil link:

gs://01_bucket-02/Portrait_82A6118_r01.png

返回此错误消息:

Exception: URL fetch failure on gs://01_bucket-02/Portrait_82A6118_r01.png: None -- unknown url type: gs

身份验证设置

对于 IAM 我在项目中有一个服务帐户,以及与 Colab 和 GCP 帐户相关联的我的用户帐户(电子邮件:d@arrovox.com)。

服务帐户角色是 Storage Admin。 服务帐户继承自项目。 我的用户帐户,我的电子邮件是 Storage Object Viewer

评估

似乎 Authenticated URL 是正确的,这是一个权限问题。

这只是在 GCS 中设置了正确的权限,还是在尝试 return GCS URL 中的图像之前我需要调用代码中的任何内容?

对于解决此问题的任何帮助或建议,我将不胜感激。

谢谢

道格

storage.objects.get是从GCS查看文件的需求,但是貌似你的用户账号或者邮箱已经有权限了

我怎么知道我的账户有正确的权限?

我认为有一个简单的解决方案可以解决这个问题。

  1. 复制您的身份验证URL
  2. 粘贴到任何网站并搜索。

如果您当前的帐户没有正确的权限,那将 return @Gmail-account does not have storage.objects.get access to the Google Cloud Storage object.

或者你可以访问bucket details的权限查看你的邮箱和服务是否在那边,是否有合适的角色。