Dateigröße via HTTP ?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Dateigröße via HTTP ?

Beitragvon snakeseven » Mittwoch 21. November 2007, 15:54

Hallo,
ich muß vor dem Downloaden per Urllib die Größe der Datei ermitteln.
Mit os.stat(url) und os.path.getsize(url) gehts nicht. Hat einer von euch eine Idee?

Grüße, Seven
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Beitragvon veers » Mittwoch 21. November 2007, 16:12

Code: Alles auswählen

u = urllib.urlopen(uri)
info = u.info()
contentType = info.get('Content-Length')
...
Zuletzt geändert von veers am Mittwoch 21. November 2007, 16:39, insgesamt 1-mal geändert.
My Website - 29a.ch
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 21. November 2007, 16:15

Statt `Content-Type` ist es eher `Content-Length`, was die Größe der Datei enthält.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Mittwoch 21. November 2007, 16:34

Sollte, man darf sich aber nicht darauf verlassen.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Beitragvon veers » Mittwoch 21. November 2007, 16:40

Leonidas hat geschrieben:Statt `Content-Type` ist es eher `Content-Length`, was die Größe der Datei enthält.
Argh, es wird wohl schon langsam spät für mich :)

Y0Gi hat geschrieben:Sollte, man darf sich aber nicht darauf verlassen.
Definitiv. Aber es ist das Einzige was man vor dem Download hat :)
My Website - 29a.ch

"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Benutzeravatar
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Beitragvon snakeseven » Mittwoch 21. November 2007, 16:44

Perfekt! Ich danke euch.
Seven
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Beitragvon keppla » Mittwoch 21. November 2007, 17:05

Y0Gi hat geschrieben:Sollte, man darf sich aber nicht darauf verlassen.


könntest du das etwas ausführen?
Warum kann man sich nicht darauf verlassen? ("Chunked" mal aussen vor)
Der einzige fall, den ich mir vorstellen könnte, wäre, dass der server die Verbindung vor der gelesenen bytezahl abbricht, weil er eine kürzere datei sendet als angegeben.
Ist sie länger, wäre das doch ungültig (filecontent wär dort, wo die header des nächsten request sein sollten), oder irre ich da?
BlackJack

Beitragvon BlackJack » Mittwoch 21. November 2007, 17:59

Wer zwingt den Client die korrekte Zahl dort anzugeben? Insbesondere wenn es eine Beschränkung gibt, die jemand gerne umgehen möchte, könnte er absichtlich einen kleineren, noch erlaubten Wert senden und dann trotzdem mehr Daten hinterher schieben.

Ob nach der Datei die nächste Anfrage kommt, hängt davon ab, ob Client und Server überhaupt ausgehandelt haben, dass über eine Verbindung mehrere Anfragen gestellt werden können. Das muss man ja nicht machen.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 21. November 2007, 19:20

BlackJack hat geschrieben:Wer zwingt den Client die korrekte Zahl dort anzugeben? Insbesondere wenn es eine Beschränkung gibt, die jemand gerne umgehen möchte, könnte er absichtlich einen kleineren, noch erlaubten Wert senden und dann trotzdem mehr Daten hinterher schieben.

Hier geht es aber um Server, die in der Regel richtige Werte ausgeben oder eben gar keine (alte Server tun das gerne und Streaming-Server sowieso).
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Mittwoch 21. November 2007, 19:36

Ich wollte's nur gesagt haben. Es kommt ja auch auf den Verwendungszweck an. Nur wenn der Server einen riesengroßen oder negativen Wert oder Null angibt und dann das Schreiben der empfangenen Daten fehlschlägt, dann sage bitte keiner, er wäre nicht gewarnt worden.

Buffer Overflows fangen auch so an.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], de_tom