Geschwindigkeitslimit

kevkev

Erfahrenes Mitglied
Hi,

Ist es Möglich, die Geschwindigkeit, mit der der User eine Datei runterlädt variabel anzupassen?

Z.b. User A ohne Cookie XY darf mit 40kb/s runterladen, aber User B mit Cookie XY darf mit 120kb/s runterladen.

In wie fern ist so etwas möglich/realisierbar?

Gruß Kevin
 
Sagen wir also Du willst den Download auf 40KB/s begrenzen. Dann gibst Du die Datei in 40KB-Bloecken aus und wartest zwischen jedem Block eine Sekunde.
Sollte theoretisch funktionieren. Bei groesseren Dateien gaebe es halt das Problem mit der begrenzten Scriptlaufzeit, aber das ist allgemein ein Problem wenn man Downloads ueber PHP verteilen will, ob nun gedrosselt oder nicht.

Wenn ich mich recht erinnere gab's dazu sogar schon Themen im PHP-Forum.

Aber vielleicht gibt es auch ein Apache-Modul ueber das sich sowas regeln laesst.
 
Mhh, braucht das nicht ein bisschen viel von der Systemleistung?
Wenn da nun 100 Leute an einer Datei laden, umpf!

Aber Ich suche jetzt mal nach einem Apache Modul :).
Wenn dir der Name von dem Modul einfällt, oder du den eventuell weißt, bitte schreiben :)
 
Ich bin ja nichtmal sicher ob es da ein Modul fuer gibt, obwohl ich es mir durchaus vorstellen koennte. Schau doch einfach mal in die Apache-Doku, vielleicht findest Du das was von wegen Bandwidth und/oder Limit.
Ob der Download nun direkt vom Apache kommt oder von PHP durchgereicht wird macht meiner Meinung nach keinen grossen Unterschied.
 
Dennis Wronka hat gesagt.:
Ich bin ja nichtmal sicher ob es da ein Modul fuer gibt, obwohl ich es mir durchaus vorstellen koennte. Schau doch einfach mal in die Apache-Doku, vielleicht findest Du das was von wegen Bandwidth und/oder Limit.
Ob der Download nun direkt vom Apache kommt oder von PHP durchgereicht wird macht meiner Meinung nach keinen grossen Unterschied.

Ich habe da mal etwas gefunden:
http://www.cohprog.com/mod_bandwidth.html

Aber Ich werde das erstmal per PHP probieren, und schauen wie das ganze aussieht wenn ein paar User dran ziehen.

Aber wie genau macht man das mit den "Blöcken"?
Über eine Schleife, aber wie lese Ich die Teilweise aus?
Ich könnte dann auch für den jeweiligen Download die Dauer ausrechnen, und so das Ausführungslimit erhöhen.

Edit:
http://dreamcodes.biz/text/?id=641&s=read

:)

Gruß Kevin
 
Zuletzt bearbeitet:
Du musst doch bei fread() eh die Anzahl Bytes angeben die Du auslesen willst, also ist es kein Problem eine Datei blockweise auszulesen.

Da das nun alles mittlerweile zu PHP-lastig ist schieb ich den Thread mal in's PHP-Forum.
 
Dennis Wronka hat gesagt.:
Du musst doch bei fread() eh die Anzahl Bytes angeben die Du auslesen willst, also ist es kein Problem eine Datei blockweise auszulesen.

Da das nun alles mittlerweile zu PHP-lastig ist schieb ich den Thread mal in's PHP-Forum.

Ich hab doch meinen Thread editiert :).
Funktionieren tut das nun auch wunderbar :D
 
Das verlinkte Script sieht im Grunde genauso aus wie ich es beschrieben hab. :)
Die Datei wird Stueck fuer Stueck an den Client geschickt.

Denk bitte noch daran den Thread als erledigt zu markieren.
 
Zurück