Мне нужно вернуть пользователю довольно большой файл (11 МБ). По определенным причинам я не могу просто предоставить прямой 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)