En una cierta petición GET
, necesito leer un archivo de forma local, en función de los parámetros de la solicitud, y enviarlo en flujo de entrada de la solicitud. ¿Cómo lo hago?Envío de un archivo binario en Tornado
class GetArchives(tornado.web.RequestHandler):
def get(self, param1, param2):
path = calculate_path(param1, param2)
try:
f = open(path, 'rb')
# TODO: send this file to request's input stream.
except IOError:
raise tornado.web.HTTPError(404, 'Invalid archive')
Gracias por su respuesta. Usted dice que esto no debe usarse para archivos grandes. ¿Alguna razón en particular para eso? – missingfaktor
Los archivos con los que trataré tendrán como máximo 50 MB de tamaño. – missingfaktor
@missingfaktor: Se lee el resto del documento a la vez, lo que aumentará considerablemente el uso de memoria. – nneonneo