W pewnym żądaniu GET
, muszę odczytać plik lokalnie, w zależności od parametrów w żądaniu, i wysłać go na strumień wejściowy żądania. Jak mam to zrobić?Wysyłanie pliku binarnego w 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')
Dziękuję za odpowiedź. Mówisz, że to nie ma być używane do dużych plików. Jakiś szczególny powód? – missingfaktor
Pliki, z którymi będę mieć do czynienia, będą miały maksymalnie 50 MB. – missingfaktor
@missingfaktor: odczytuje cały plik naraz, co znacznie zwiększy użycie pamięci. – nneonneo