Necesito devolver un archivo bastante grande (11 MB) al usuario. Por ciertas razones, no puedo simplemente proporcionar una URL directa al archivo (http://www.sample.com/mybigfile.exe); en su lugar, se debe acceder a través del código.Tamaño máximo de objeto que se puede guardar en memcached con memcache.py
En lugar de tener que leerlo desde el disco una y otra vez, pensé en guardarlo en memcached (si esta no es una buena idea, háganmelo saber). Todo parece funcionar, está bien (sin errores), pero cuando intento recuperar el archivo de memcached, siempre obtengo None, como si el archivo no estuviera en la memoria caché.
¿Existe un límite de tamaño para lo que se puede guardar?
Aquí está el código:
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)
Si Memcache se está ejecutando localmente, probablemente no ganes mucho leyendo su contenido, ya que, suponiendo que haya suficiente memoria RAM disponible, el sistema de archivos ya lo tendrá en caché en la memoria RAM. – radiospiel