GAE webapp2_extras会话内存限制(在会话中存储临时图像)

时间:2012-11-26 12:31:32

标签: image google-app-engine session webapp2

webapp2_extras'会话非常有用,我一直在使用它们来保持用户登录等等。但是关于它的文档并不多。例如:哪个是会话字典中条目的内存限制?

到目前为止,我已经存储了字符串和数字。但我需要存储一个从HTML表单上传的整个图像(想法是这个图像是临时的,可能会被丢弃,所以我不想将它存储在数据存储区中,直到我确定我必须这样做它)。它似乎不起作用,我想我正在遇到内存问题:

self.session['photo_image']  = self.request.get("photo_image")
是吗?是这样吗?我猜有内存限制,但我找不到它们。我怎样才能在GAE中存储临时图像?

1 个答案:

答案 0 :(得分:3)

您可以将其存储在“实例内存”中,例如在脚本启动时创建一个全局列表,并将传入的图像附加到该列表,然后在完成后将其删除。当然,如果你有很多用户/大文件,那么你很快就会有内存。当实例关闭时,你将失去一切,如果有多个实例正在运行,你可能会遇到问题。

所以Memcache听起来很完美。 using Memcache

 def get_data():
    data = memcache.get('key')

    if data is not None:
        return data
    else:
        data = self.query_for_data()
        memcache.add('key', data, 60)
        return data

是的,它不是100%可靠,因为我确定你已经听过了,但是如果你没有使用100个巨大的文件并且保持它们很长时间你可能不会有问题。因为它是先进先出(IIRC),如果你或多或少地处理它们,以便更不可能丢失数据。我认为memcache将是你最好的选择,尝试一下。