google-cloud-storage - GCloud gcsfuse 权限被拒绝

标签 google-cloud-storage fuse gcsfuse

有人成功使用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/

相关文章:

google-cloud-platform - Google 的 key 管理系统 : data unencryption after key rotation

java - 生产环境中 Google App Engine 和 Google Cloud SQL 的连接出现问题

c++ - 如何优化路径列表中的目录列表?

linux - 如何使用 mount(8) 和 fstab 注册 FUSE 文件系统类型?

c - FUSE 文件系统操作

google-cloud-storage - 如何从 gcloud 中的部署中排除文件?

google-cloud-storage - 如何列出最近添加到 GCS 存储桶的文件

google-cloud-storage - 如何等待gcsfuse写入(刷新)到GCS存储桶?

cloud - 谷歌计算引擎上文件服务器的最佳等价物是什么

google-cloud-storage - 在 Google 存储上安装存储桶