Input/output 写入 google 云存储桶时出错

Input/output error when writing to google cloud storage bucket

我在 https://console.cloud.google.com/storage/
上创建了一个 gcs 存储桶 并使用 gcsfuse 成功安装到一个实例上, 但是,当我尝试写入挂载目录时,它显示 Input/output 错误。

fuse_debug: Op 0x00000003        connection.go:395] <- LookUpInode (parent 1, name "test")
gcs: Req              0x1: <- StatObject("test/")
gcs: Req              0x2: <- StatObject("test")
gcs: Req              0x1: -> StatObject("test/") (31.355698ms): gcs.NotFoundError: googleapi: Error 404: Not Found, notFound
gcs: Req              0x2: -> StatObject("test") (51.589538ms): gcs.NotFoundError: googleapi: Error 404: Not Found, notFound
fuse_debug: Op 0x00000003        connection.go:476] -> Error: "no such file or directory"
fuse_debug: Op 0x00000004        connection.go:395] <- MkDir (parent 1, name "test")
gcs: Req              0x3: <- CreateObject("test/")
gcs: Req              0x3: -> CreateObject("test/") (13.513239ms): googleapi: Error 403: Insufficient Permission, insufficientPermissions
fuse_debug: Op 0x00000004        connection.go:476] -> Error: "CreateChildDir: googleapi: Error 403: Insufficient Permission, insufficientPermissions"
fuse: 2016/06/09 02:12:40.128885 *fuseops.MkDirOp error: CreateChildDir: googleapi: Error 403: Insufficient Permission, insufficientPermissions

请 运行 将 gcsfuse 与 --foreground(也许 --debug_fuse)结合使用,以了解错误发生时的具体情况。

--foreground --debug_fuse 输出显示您使用的凭据不允许写入存储桶。它们可能是只读的(StatObject 没有 return 403,并且 gcsfuse 在启动时检查它是否可以列出存储桶)。

尝试仔细阅读 docs about credentials。特别是,如果您在 Google Compute Engine VM 上自动获取凭据,您可能忘记了使用 storage-full 范围创建它。