2

有人成功使用 gcsfuse 吗?

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

 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

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

我还向我的serviceaccname.

如果我授予xxxxx-compute我的存储桶所有权限,包括旧权限,列表似乎有效。但将任何文件写入目录失败:

googleapi: Error 403: Insufficient Permission, insufficientPermissions

有人有运气吗?

4

1 回答 1

2

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

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

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

然后运行添加到环境变量中,指向服务 JSON 文件的路径。

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

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

... --temp-dir=/someotherpath

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

于 2018-06-04T16:09:18.593 回答