Google cloud storage GCloud gcsfuse权限被拒绝

Google cloud storage GCloud gcsfuse权限被拒绝,google-cloud-storage,fuse,gcsfuse,Google Cloud Storage,Fuse,Gcsfuse,有人成功使用gcsfuse吗 我已尝试删除bucket的所有默认权限, 并设置服务帐户: gcloud auth activate-service-account to activate serviceaccname 然后运行: gcsfuse --debug_gcs --foreground cloudbuckethere /backup gcs:Req 0x0:->ListObjects()(307.880239ms):googleapi:错误403:xxxxxx-compute@de

有人成功使用gcsfuse吗

我已尝试删除bucket的所有默认权限, 并设置服务帐户:

 gcloud auth activate-service-account to activate serviceaccname
然后运行:

gcsfuse --debug_gcs --foreground cloudbuckethere /backup
gcs:Req 0x0:->ListObjects()(307.880239ms):googleapi:错误403:xxxxxx-compute@developer.gserviceaccount.com没有storage.objects.list访问权限

奇怪的是,它抱怨用户
xxxxx-compute
不是我激活的服务帐户:

gcloud auth list
是否显示我当前的服务帐户处于活动状态

我还将admin owner、admin object owner、write object、read object授予了我的
serviceaccname

如果我将所有权限(包括遗留权限)授予我的bucket
xxxxx-compute
,则列表似乎有效。但将任何文件写入目录失败,原因是:

googleapi: Error 403: Insufficient Permission, insufficientPermissions

有人运气好吗?

我找到了一个解决方案,不确定这是否是一个好的解决方案,但它是有效的

设置服务帐户并下载JSON文件

GOOGLE_APPLICATION_CREDENTIALS=/path-to-json/gcloud.json gcsfuse --debug_gcs --foreground bucketname /path-to-mount
使用上述服务帐户名以bucket admin的身份授予对bucket的访问权限

然后运行addinto环境变量,指向服务JSON文件的路径

GOOGLE_APPLICATION_CREDENTIALS=/path-to-json/gcloud.json gcsfuse --debug_gcs --foreground bucketname /path-to-mount
还请注意,默认情况下,它可能会占用tmp目录中的大量空间。添加标志:

... --temp-dir=/someotherpath

如果您在/tmp中的空间有限,这将非常有帮助。

是否可能您正在Google Cloud平台中设置的计算实例上运行该命令?是的,我在我的实例中运行,我找到了修复程序,我会稍后发布它