In einer Web-App, an der ich gerade arbeite, kann der Benutzer ein Zip-Archiv eines Ordners voller Dateien erstellen. Hier ist hier der Code:Zip-Archiv zum sofortigen Download erstellen
files = torrent[0].files
zipfile = z.ZipFile(zipname, 'w')
output = ""
for f in files:
zipfile.write(settings.PYRAT_TRANSMISSION_DOWNLOAD_DIR + "/" + f.name, f.name)
downloadurl = settings.PYRAT_DOWNLOAD_BASE_URL + "/" + settings.PYRAT_ARCHIVE_DIR + "/" + filename
output = "Download <a href=\"" + downloadurl + "\">" + torrent_name + "</a>"
return HttpResponse(output)
Das hat aber die unangenehme Nebenwirkung von einer langen Wartezeit (+ 10 Sekunden), während das Zip-Archiv heruntergeladen wird. Ist es möglich, dies zu überspringen? Anstatt das Archiv in einer Datei zu speichern, ist es möglich, es direkt an den Benutzer zu senden?
Ich glaube, dass torrentflux bietet diese excat-Funktion, über die ich spreche. In der Lage, GBs von Daten zu zippen und innerhalb einer Sekunde herunterzuladen.
Ich glaube, das sein kann, was er zu fragen. – Travis
Es ermöglicht dateiähnliche Objekte. Man kann ein dateiähnliches Objekt haben, das als gepufferter Stream fungiert - siehe meine Antwort! –