Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 谷歌应用程序引擎不支持写文件,我该如何应对呢?_Google App Engine - Fatal编程技术网

Google app engine 谷歌应用程序引擎不支持写文件,我该如何应对呢?

Google app engine 谷歌应用程序引擎不支持写文件,我该如何应对呢?,google-app-engine,Google App Engine,我有一个GAE/Python应用程序,它是一个管理程序,允许世界各地的人将大型GAE应用程序的模板文件翻译成他们的本地语言(我们不能使用自动翻译,因为其中涉及许多习惯用法等)。模板文件已标记,各种语言的文本片段存储在GAE数据存储中(涉及数千个模板文件) 因此,我需要能够将文件写入文件夹 我有以下代码: with open("my_new_file.html", "wb") as fh: fh.write(output) 我读到GAE会阻止文件的写入。如果这是真的,有什么办法可以绕过它

我有一个GAE/Python应用程序,它是一个管理程序,允许世界各地的人将大型GAE应用程序的模板文件翻译成他们的本地语言(我们不能使用自动翻译,因为其中涉及许多习惯用法等)。模板文件已标记,各种语言的文本片段存储在GAE数据存储中(涉及数千个模板文件)

因此,我需要能够将文件写入文件夹

我有以下代码:

with open("my_new_file.html", "wb") as fh:
    fh.write(output)
我读到GAE会阻止文件的写入。如果这是真的,有什么办法可以绕过它吗

如果我不能直接编写文件,是否有人对我如何完成相同的任务有建议(例如,使用web服务执行某种往返下载然后上载文件的操作)

我是GAE/Python的新手,所以请具体说明


谢谢您的建议。

您可以使用google app engine blobstore或数据存储中的BlobProperty来存储Blob/文件

用于使用blobstore(高达2GB)

用于使用数据存储Blob(最多1MB)
在许多云系统中,文件系统是只读的,GAE也是只读的。在操作系统和机器都是虚拟的虚拟世界中,文件系统是存储任何东西最不可靠的地方

我建议使用BLOB、Google云存储、Google Drive中的任何一种,甚至进一步使用setp,并将其存储在任何外部提供商(如Amazon S3等)中。

使用文件API:

添加一些额外的代码,您可以像使用普通Python文件API一样使用它:

with files.open(writable_file_name, 'a') as f:
  f.write('Hello World!')
虽然此特定链接描述了它与Google云存储(GCS)的关系,但您可以轻松替换GCS特定的部分,并将blobstore用作存储后端

代码可在此处找到:

您还可以看看Google Cloud Storage()。不完全是这样,您需要在您的Google API控制台项目(不是在GAE中)中启用计费,并且在今年年底之前有5GB的免费配额。文件必须在文件系统中是一项要求吗?我做了类似的事情,但我将文件存储在数据存储中(如果文件大于1MB,则存储在blobstore中)。您可以从任何地方提取模板数据,并在GAE应用程序中呈现它。Titan文件库可以为您抽象文件到数据存储/blobstore的写入:GAE文件系统不是短暂的,它是只读的。尝试写入时会出现异常。