我一直在努力用GAE创建一个文件两天了,我已经研究了不同的方法,每个方法看起来比前一个方法更复杂,更耗时。
我尝试过简单地加载页面并将文件写入带有相关标题的响应对象:
self.response.headers['Content-Disposition'] = "attachment; filename=titles.csv"
q = MyObject.all()
for obj in q:
title = json.loads(obj.data).get('title')
self.response.out.write(title.encode('utf8')+"\n")
这告诉我(在一个很长的错误中)Full proto too large to save, cleared variables.
这是full error。
我还检查了云端存储,但它需要大量信息并在云端控制台中进行调整才能启用,而Blobstorage只能将内容保存到DataStore中。
写一个文件不能这么复杂!请告诉我,我遗失了一些东西。
答案 0 :(得分:1)
该错误与编写CSV无关,但在迭代所有MyObject实体时似乎是超时。请记住,GAE中的请求受到严格限制,您可能会超过这些限制。您可能希望使用游标和延迟API分阶段构建CSV。但为此,你肯定需要写入blobstore或CS。