关于Google云端存储:GCloud gcsfuse权限被拒绝

GCloud gcsfuse permission denied

有人成功使用gcsfuse吗?

我试图删除存储桶的所有默认权限,
并设置一个服务帐户:

1
 gcloud auth activate-service-account to activate serviceaccname

然后运行:

1
gcsfuse --debug_gcs --foreground cloudbuckethere /backup

gcs: Req 0x0: -> ListObjects() (307.880239ms): googleapi: Error 403: [email protected] does not have storage.objects.list access

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

1
gcloud auth list

确实显示我当前的服务帐户处于活动状态...

我还授予了管理员,管理员对象所有者,写入对象,将对象读取到我的serviceaccname存储桶中。

如果我将具有所有权限(包括旧版权限)的存储桶授予xxxxx-compute,则列表似乎可以正常工作。 但是将任何文件写入目录失败:

1
googleapi: Error 403: Insufficient Permission, insufficientPermissions

有人运气好吗?


我找到了一个解决方案,不确定这是否是一个好的解决方案,但是它可以工作。

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

使用上述服务帐户名称,以存储桶管理员的身份授予存储桶访问权限。

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

1
GOOGLE_APPLICATION_CREDENTIALS=/path-to-json/gcloud.json gcsfuse --debug_gcs --foreground bucketname /path-to-mount

另请注意,默认情况下,它可能会在tmp目录中使用大量空间。 添加标志:

1
... --temp-dir=/someotherpath

如果您在/ tmp中的空间有限,那将真的有帮助。