Django Download Stream
Verfasst: Samstag 7. April 2007, 09:19
Hallo Zusammen
Ich habe bei Webfaction ein Hosting Account und es stehen mir max 80MB zur Verfügung.
Ich habe nun eine kleine Platform (Django 0.96), wo dateien getauscht werden und da kommt es oft vor, dass Dateien die grösser als 80MB sind getauscht werden.
Bei meiner Momentanen Download Methode wird aber das ganze file in das response Objekt eingelesen -->> Mehr als 80MB Ram wird verbraucht -->> Prozess wird abgeschossen...
Hier mal mein jetztiger code
f = getFile(id) ruft mir ein FileObjekt ab, aber sollte in diesem fall ja nicht all zu wichtig sein.
Meine Frage nun, wie kann ich das einlesen und zurückgeben des Files streamen?
Gruess + Dank
DM
Ich habe bei Webfaction ein Hosting Account und es stehen mir max 80MB zur Verfügung.
Ich habe nun eine kleine Platform (Django 0.96), wo dateien getauscht werden und da kommt es oft vor, dass Dateien die grösser als 80MB sind getauscht werden.
Bei meiner Momentanen Download Methode wird aber das ganze file in das response Objekt eingelesen -->> Mehr als 80MB Ram wird verbraucht -->> Prozess wird abgeschossen...
Hier mal mein jetztiger code
Code: Alles auswählen
@login_required
def download(request, id):
f = getFile(id)
if f.isDir == True:
#ToDo: Redirect auf Ordner
return HttpResponseRedirect("/list/" + str(f.id))
response= HttpResponse(mimetype = f.getMimeType())
response["Content-Disposition"] = "attachment, filename=" + f.getName()
response["Content-Type"] = f.getMimeType()
response["Content-Length"] = str(f.getSize())
text = f.read()
while text:
response.write(text)
print text
text = f.read()
f.information.Downloads += 1
return response
Meine Frage nun, wie kann ich das einlesen und zurückgeben des Files streamen?
Gruess + Dank
DM