In una determinata richiesta GET
, ho bisogno di leggere un file localmente, in base ai parametri nella richiesta, e inviarlo sul flusso di input della richiesta. Come lo faccio?Invio di un file binario in 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')
Grazie per la risposta. Tu dici che questo non deve essere usato per i file di grandi dimensioni. Qualche ragione particolare per quello? – missingfaktor
I file con cui ho a che fare saranno al massimo di 50 MB. – missingfaktor
@missingfaktor: legge l'intero file in una sola volta, il che aumenterà notevolmente l'utilizzo della memoria. – nneonneo