Google app engine 谷歌应用程序引擎不支持写文件,我该如何应对呢?
我有一个GAE/Python应用程序,它是一个管理程序,允许世界各地的人将大型GAE应用程序的模板文件翻译成他们的本地语言(我们不能使用自动翻译,因为其中涉及许多习惯用法等)。模板文件已标记,各种语言的文本片段存储在GAE数据存储中(涉及数千个模板文件) 因此,我需要能够将文件写入文件夹 我有以下代码: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会阻止文件的写入。如果这是真的,有什么办法可以绕过它
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文件系统不是短暂的,它是只读的。尝试写入时会出现异常。