有人成功使用gcsfuse吗?
我尝试删除存储桶的所有默认权限, 并设置一个服务帐户:
gcloud auth activate-service-account to activate serviceaccname
然后运行:
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
这不是我激活的服务帐户:
gcloud auth list
确实显示我当前的服务帐户处于事件状态...
我还向我的 serviceaccname
授予了管理员所有者、管理对象所有者、写入对象、读取对象到存储桶的权限。
如果我向我的存储桶授予 xxxxx-compute
的所有权限(包括旧权限),列表似乎可以工作。但将任何文件写入该目录失败,并显示:
googleapi: Error 403: Insufficient Permission, insufficientPermissions
有人有好运吗?
最佳答案
我找到了一个解决方案,不确定这是否是一个好的解决方案,但它有效。
设置服务帐户并下载 JSON 文件。
使用上述服务帐户名称以存储桶管理员身份授予对存储桶的访问权限。
然后运行添加到环境变量中,指向服务 JSON 文件的路径。
GOOGLE_APPLICATION_CREDENTIALS=/path-to-json/gcloud.json gcsfuse --debug_gcs --foreground bucketname /path-to-mount
另请注意,默认情况下它可能会使用 tmp 目录中的大量空间。添加标志:
... --temp-dir=/someotherpath
如果/tmp 空间有限,这真的很有帮助。
关于google-cloud-storage - GCloud gcsfuse 权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50106366/