Google cloud storage 执行的PHP脚本无法访问GCE上安装的GCS驱动器

Google cloud storage 执行的PHP脚本无法访问GCE上安装的GCS驱动器,google-cloud-storage,google-compute-engine,gcsfuse,Google Cloud Storage,Google Compute Engine,Gcsfuse,我可以使用下面的命令行装载我的Google云存储: gcsfuse-o allow_other-file mode=660-dir mode=770--uid=--gid=testbucket/path/to/domain/folder 该组包括用户apache。Apache能够像这样写入已安装的驱动器: sudo-u apache echo“一些测试文本”>/path/to/domain/folder/hello.txt hello.txt将按预期显示在bucket中。但是,当我执行以下php

我可以使用下面的命令行装载我的Google云存储:

gcsfuse-o allow_other-file mode=660-dir mode=770--uid=--gid=testbucket/path/to/domain/folder

该组包括用户apache。Apache能够像这样写入已安装的驱动器:

sudo-u apache echo“一些测试文本”>/path/to/domain/folder/hello.txt

hello.txt将按预期显示在bucket中。但是,当我执行以下php脚本时,我得到一个错误:


我遇到了类似的问题

在使用gcsfuse装载Google存储桶时,使用标志
--implicit dirs
。更多关于这个

将bucket装载为文件夹会使操作系统将其视为常规文件夹,其中可能包含文件和文件夹。但谷歌云存储桶没有目录结构。例如,当您在Google存储桶中名为
files
的文件夹中创建名为
hello.txt
的文件时,实际上并不是在创建文件夹并将文件放入其中。对象在bucket中创建,名称为
files/hello.txt
。更多关于这个和

要使操作系统将GCS存储桶视为分层结构,必须为gcsfuse指定
--implicit dirs
标志

注意:
我不建议在生产系统中使用gcsfuse,因为它是一款测试版质量的软件。

这里有很多活动部件。您是否能够在没有PHP甚至Apache的情况下重现问题?那会有很大帮助。如果做不到这一点,也许您可以使用
strace
来查看到底是什么系统调用PHP导致了失败。我确实看到了文件夹行为的不同,但不幸的是,这并没有解决我的问题。我仍然无法用PHP保存文件。我将改用API。谢谢你的帮助!