Sto lavorando a un'applicazione Web in Python/Twisted.HTTP Download file molto grande
Desidero che l'utente sia in grado di scaricare un file molto grande (> 100 Mb). Non voglio caricare tutto il file in memoria (del server), ovviamente.
lato server ho questa idea:
...
request.setHeader('Content-Type', 'text/plain')
fp = open(fileName, 'rb')
try:
r = None
while r != '':
r = fp.read(1024)
request.write(r)
finally:
fp.close()
request.finish()
mi aspettavo questo lavoro, ma non ho problemi: sto testando con FF ... Sembra il browser farmi aspettare fino a quando il file è completato scaricato, e quindi ho la finestra di dialogo Apri/Salva.
mi aspettavo la finestra di dialogo immediatamente, e quindi la barra di avanzamento in azione ...
Forse devo aggiungere qualcosa nell'intestazione HTTP ... Qualcosa come la dimensione del file?
Probabilmente otterrete una migliore produttività e meno carico sul server attraverso la lettura e l'invio di pezzi più grandi ... sperimenta valori intorno a 4-16k per trovare ciò che funziona meglio per le tue circostanze. – dcrosta
Vuoi accettare una delle risposte? –