我有一个GAE / Python应用程序,它是一个管理程序,允许世界各地的人们将大型GAE应用程序的模板文件翻译成他们的本地语言(我们不能使用自动翻译,因为涉及许多成语等) 。模板文件已被标记化,各种语言的文本片段存储在GAE数据存储区中(涉及数千个模板文件)。
因此,我需要能够将文件写入文件夹。我有以下代码:
with open("my_new_file.html", "wb") as fh:
fh.write(output)
我已经读过GAE会阻止文件的写入。如果这是真的,有没有办法解决它?
如果我不能直接写文件,是否有人建议我如何完成相同的事情(例如,做一些网络服务,进行某种往返下载然后上传文件)?
我是GAE / Python的新手,所以请具体说明。
感谢您的任何建议。
答案 0 :(得分:2)
您可以在数据存储区中使用Google App引擎blobstore或BlobProperty来存储blob /文件
使用blobstore(最大2GB) https://developers.google.com/appengine/docs/python/blobstore/
使用数据存储区blob(最多1MB) https://developers.google.com/appengine/docs/python/datastore/typesandpropertyclasses#Blob
答案 1 :(得分:0)
文件系统只在许多云系统中读取,GAE也是如此。在虚拟世界中,操作系统和机器是虚拟的,文件系统是存储任何东西的最不可靠的地方
我建议使用任何BLOB,Google云端存储,Google云端硬盘,甚至可以进一步存储并存储在任何外部提供商(如Amazon S3等)中。
答案 2 :(得分:0)
使用文件API: https://developers.google.com/appengine/docs/python/googlestorage/overview
添加一些额外的代码,您可以像普通的Python文件API一样使用它:
with files.open(writable_file_name, 'a') as f:
f.write('Hello World!')
虽然此特定链接与Google云端存储(GCS)相关,但您可以轻松替换特定于GCS的部分,并将blobstore用作存储后端。
代码可以在这里找到: http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/api/files/