Ich hab mein Download-Skript so umgebaut das es nicht mehr StringIO nimmt, sondern mit tempfile.NamedTemporaryFile() ein tar-File in's Dateisystem schreibt...
Das klappt auch super, wenn der Download komplett durchgelaufen ist... Also die Temp-Datei wird dann schön sauber gelöscht...
Wenn jedoch der User den Download vor ablauf abbricht, dann bleibt die Temp-Datei leider übrig und müllt das /tmp zu
Ich könnte natürlich mit dem prefix arbeiten und zu alte Dateien automatisch löschen, aber dafür müßte es doch eine bessere Möglichkeit geben...
CGI/fastCGI: NamedTemporaryFile produziert Dateileichen...
Wenn Du unter Unix bist, dann könntest Du die Datei zum lesen öffnen, dann löschen und dann auslesen und an den Klienten schicken. Solange ein Dateideskriptor auf eine Datei verweist verschwindet die Datei nicht, sondern nur der Name auf der Platte. Erst wenn die Datei geschlossen wird, räumt Unix/Linux die Datei auf der Platte weg. Quasi ein Garbage Collector mit Referenzzähler wie bei CPython.
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ist das nicht so, wenn ich statt NamedTemporaryFile() -> TemporaryFile() nehmen würde? So richtig hab ich die Doku dazu nicht verstanden: http://www.python.org/doc/current/lib/m ... l#l2h-2201
Generell muß das ganze auch auch unter Windows funktionieren
Generell muß das ganze auch auch unter Windows funktionieren