GAE PHP应用程序:找不到包装器";gs";
我正在标准的php73谷歌应用程序引擎环境中编写一些非常简单的代码,遵循以下文档:和 php.ini(根据本场景的文档,这不是必需的,只是以防万一) index.php: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
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");