我需要向用户返回一个相当大的文件(11MB)。由于某些原因,我不能只提供文件的直接 url ( http://www.sample.com/mybigfile.exe );相反,它必须通过代码访问。
我不必一遍又一遍地从磁盘读取它,而是考虑将它保存在 memcached 中(如果这不是一个好主意,请告诉我)。一切似乎都正常,很好(没有错误),但是当我尝试从 memcached 中检索文件时,我总是得到 None,就好像文件没有被缓存一样。
可以保存的内容是否有大小限制?
这是代码:
def download_demo():
"""
Returns the demo file
"""
KEY = "xyz"
TIME = 86400 #24 hours
buff = memc.get(KEY)
if not buff:
file = open(FILENAME, 'r')
buff = file.read()
memc.set(KEY, buff, TIME)
print "Content-Type:application/x-download\nContent-Disposition:attachment;filename=%s\nContent-Length:%s\n\n%s" % (os.path.split(FILENAME)[-1], len(buff), buff)