我正在运行一个Google Compute实例,它必须能够连接到本地挂载的存储桶中进行读取和写入。
此时,当ssh-ed进入机器时,我有权读取目录中的所有文件,但不能写入它们。
这里有更多的细节:
gcloud init
account: PROJECT_NUMBER-compute@developer.gserviceaccount.com在google平台上查看IAM时,此IAM具有专有角色,因此它应该能够访问项目中的所有资源。
gcsfuse -o allow_other --file-mode 777 --dir-mode 777 --o nonempty BUCKET LOCAL_DIR现在看一下权限,所有文件都具有(如预期的)
ls -lh LOCAL_DIR/
drwxrwxrwx 1 ubuntu ubuntu 0 Jul 2 11:51 folder但是,当运行一个非常简单的python代码将一个pickle保存到其中一个目录中时,我得到了以下错误
OSError: [Errno 5] Input/output error: FILENAME如果我使用--foreground标志运行gcsuse,它产生的错误是
fuse: 2018/07/02 12:31:05.353525 *fuseops.GetXattrOp error: function not implemented
fuse: 2018/07/02 12:31:05.362076 *fuseops.SetInodeAttributesOp error: SetMtime: \
UpdateObject: googleapi: Error 403: Insufficient Permission, insufficientPermissions这很奇怪,因为VM上的帐户具有专有角色。
有没有想过如何克服这个问题?
发布于 2018-07-28 01:21:57
您的实例需要适当的作用域才能访问GCS存储桶。您可以通过控制台或使用gcloud计算实例describe instance_name | grep scopes 10查看作用域
您必须具有存储读/写或https://www.googleapis.com/auth/devstorage.read_write
https://stackoverflow.com/questions/51136336
复制相似问题