3

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

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

self.session['photo_image']  = self.request.get("photo_image")

是这样吗?我想有内存限制,但我找不到它们。我还能如何在 GAE 中存储临时图像?

4

1 回答 1

3

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

所以 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 将是你最好的选择,试试吧。

于 2012-11-26T12:39:48.597 回答