我试图访问存储桶中的文件,并且不断对文件进行访问拒绝。我可以在GCS控制台中看到它们但可以通过它访问它们,并且无法通过运行以下命令的gsutil访问它们。
gsutil cp gs://my-bucket/folder-a/folder-b/mypdf.pdf files/
但所有这些都是AccessDeniedException: 403 Forbidden
我可以列出所有文件,但不能实际访问它们。我尝试将我的用户添加到acl但仍然没有效果。所有文件都是通过保险丝座从VM上传的,保险丝座完美无缺,只是丢失了所有访问权限。
我已经检查了这些帖子,但似乎没有一个解决方案可以帮助我
Can't access resource as OWNER despite the fact I'm the owner
gsutil copy returning "AccessDeniedException: 403 Insufficient Permission" from GCE
答案 0 :(得分:5)
这很有可能。拥有一个桶授予该桶的FULL_CONTROL权限,其中包括列出该桶中对象的功能。但是,存储区权限不会自动暗示任何类型的对象权限,这意味着如果某个其他帐户正在上载对象并将ACL设置为类似于" private,"桶的所有者无法访问它(尽管桶所有者可以删除该对象,即使他们无法读取它,因为删除对象是存储桶权限)。
我不熟悉默认的FUSE设置,但如果我不得不猜测,您是否正在使用项目的系统帐户上传对象,并且他们已将其设置为私人的。没关系。测试的最简单方法是从GCE主机运行gsutil,其中默认凭据将是系统帐户。如果可行,您可以使用gsutil将ACL切换为更宽松的内容,例如" project-private。"
执行此操作的命令将是:
gsutil acl set -R project-private gs://muBucketName/
答案 1 :(得分:0)
尽管,这是一个很老的问题。但是最近我有一个类似的问题。在尝试了此处建议的许多选项均未成功后,我仔细地检查了我的脚本,发现由于存储桶地址“ gs:// my-bucket”中的错误而导致出现错误。我修好了,效果很好!