GAE PHP应用程序:找不到包装器";gs";

GAE PHP应用程序:找不到包装器";gs";,php,google-app-engine,google-cloud-platform,google-cloud-storage,Php,Google App Engine,Google Cloud Platform,Google Cloud Storage,我正在标准的php73谷歌应用程序引擎环境中编写一些非常简单的代码,遵循以下文档:和 php.ini(根据本场景的文档,这不是必需的,只是以防万一) index.php: file_put_contents("gs://#default#/hello.txt", "some text"); 并从Google App Engine获取以下错误 file_put_contents(): Unable to find the wrapper "gs" - did you forget to enab

我正在标准的php73谷歌应用程序引擎环境中编写一些非常简单的代码,遵循以下文档:和

php.ini(根据本场景的文档,这不是必需的,只是以防万一)

index.php:

file_put_contents("gs://#default#/hello.txt", "some text");
并从Google App Engine获取以下错误

file_put_contents(): Unable to find the wrapper "gs" - did you forget to enable it when you configured PHP?
据我从文档中看到的,应该不需要其他配置,因为GAE会在其环境中自动注册文件流包装器


我错过了什么?谢谢

如果是应用程序引擎应用程序,则无法写入部署应用程序的文件系统。应用程序可以从部署的目录结构中读取任何文件,但不能写入该文件系统。相反,应用程序可以使用谷歌云存储(GCS)来读取和写入文件

修改一些应用程序文件路径以指向云项目中的GCS存储桶 修改应用程序文件上载表单,以便它们使用GCS接收上载的文件

您可以选择使用PHP文件系统函数(如file_get_contents)读取应用程序上载的静态文件

$fileContents=file\u get\u contents($filePath)

其中指定的路径必须是相对于访问它们的脚本的路径

将应用程序部署到app Engine时,必须上载应用程序子目录中的一个或多个文件,并且必须配置app.yaml文件,以便应用程序可以访问这些文件。有关完整的详细信息,请参阅带有app.yaml的PHP应用程序配置

在app.yaml配置中,请注意,如果使用静态文件或目录处理程序(static_files或static_dir),则必须将application_readable设置为true,否则应用程序将无法读取文件。但是,如果文件由脚本处理程序提供服务,则不需要这样做,因为默认情况下,脚本处理程序可以读取这些文件


第二种选择是在appengine之外运行应用程序,Google提供XML和jsonapi。GCS开发者网站上提供了文档、库和示例应用程序。

因此,文档是针对PHP5环境而不是PHP7的(尽管没有说明)。在PHP 7中实现此功能的方法如下所示:

我只是这样做了:

use Google\Cloud\Storage\StorageClient; 
function register_stream_wrapper($projectId) {   
    $client = new StorageClient(['projectId' => $projectId]);
    $client->registerStreamWrapper();
}
register_stream_wrapper("projectId");

注册包装器。

我知道这一点-我正在按照文档重新写入GCS存储桶,并收到此错误。答案与问题无关
use Google\Cloud\Storage\StorageClient; 
function register_stream_wrapper($projectId) {   
    $client = new StorageClient(['projectId' => $projectId]);
    $client->registerStreamWrapper();
}
register_stream_wrapper("projectId");