0

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

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

我有以下代码:

with open("my_new_file.html", "wb") as fh:
    fh.write(output)

我读过 GAE 会阻止文件的写入。如果这是真的,有什么办法可以绕过它吗?

如果我不能直接编写文件,是否有人对我如何完成同样的事情有建议(例如,使用网络服务执行某种往返下载然后上传文件)?

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

感谢您的任何建议。

4

3 回答 3

2

您可以在数据存储区中使用 google app engine 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

于 2012-08-21T17:50:04.917 回答
0

文件系统在许多云系统中是只读的,GAE 也是。在虚拟世界中,操作系统和机器都是虚拟的,文件系统是存储任何东西的最不可靠的地方

我建议使用 BLOB、Google Cloud Storage、Google Drive 中的任何一个,甚至进一步设置并存储在任何外部提供商中,如 Amazon S3 等。

于 2012-08-21T20:22:02.943 回答
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 Cloud Storage (GCS) 相关的内容,但您可以轻松替换 GCS 特定的部分并将 blobstore 用作存储后端。

代码可以在这里找到: http ://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/api/files/

于 2012-08-22T16:50:52.127 回答