繁体   English   中英

无法使用 Fuse 在 GCP buket 中写入文件

[英]Unable to write files in a GCP buket using Fuse

我使用以下命令在 VM 上安装了一个存储桶:

gcsfuse my-bucket /path/to/mount

在此之后,我可以使用 Pandas 从 Python 中的存储桶中读取文件,但我无法写入文件也无法创建新文件夹。 我曾尝试使用 Python 并从终端使用 sudo 但得到相同的错误。

我也尝试过使用存储桶中的 key_file:

sudo mount -t gcsfuse -o implicit_dirs,allow_other,uid=1000,gid=1000,key_file=Notebooks/xxxxxxxxxxxxxx10b3464a1aa9.json <BUCKET> <PATH>

当我运行代码时它不会出现错误,但我仍然无法在桶中写入。

我也试过

gcloud auth login

但仍然有同样的问题。

不久前我遇到了同样的事情,这真的很混乱。 您必须为虚拟机设置正确的访问 scope,以便任何使用 VM 的人都能够调用存储 API。 文档显示 VM 上存储的默认访问 scope 是只读的:

当您创建新的 Compute Engine 实例时,它会自动配置以下访问范围:

  • 云存储的只读访问权限:https://www.googleapis.com/auth/devstorage.read_only

您所要做的就是更改此 scope,以便您还能够从 VM 写入存储桶。 您可以在此处找到不同范围的概述。 要将新的 scope 应用到您的 VM,您必须先将其关闭。 然后从您的本地机器执行以下命令:

gcloud compute instances set-scopes INSTANCE_NAME \
  --scopes=storage-rw \
  --zone=ZONE

如果您将 go 设置为 VM 的设置,则可以从门户执行相同的操作,一直向下滚动,然后选择“为每个 API 设置访问权限”。 首次创建 VM 时,您有相同的选项。 以下是您将如何执行此操作的示例:

计算引擎访问范围

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM