Na eerst eindelijk een goede bandwidth-manager gevonden te hebben voor Apache die precies doet wat ik nodig heb (mod_bandwidth), blijkt nu dat het weer niet werkt i.c.m. met mijn download-script.
Wat is het verhaal: Ik heb een filemanager gemaakt met een downloadscript. Je weet wel, zoeen om downloads te registreren en hot-linken te voorkomen.
De bestanden hebben op harddisk een naam als "file_4f85c3" in een directory buiten de web-root. Het downloaden gaat via /getfile.php?id=4f85c3. In getfile.php staat uiteindelijk het volgende:
Het probleem is echter dat mod_bandwidth wel de bestanden in dezelfde directory als getfile.php limiteerd, maar niet de te downloaden bestanden. Die komen dus op volle snelheid over.
Ik heb al geprobeerd om in een .htaccess-bestand of in httpd.conf de opslagdirectory hard in te stellen door "BandWidthModule On" en "BandWidth all 10240" te plaatsen, wat voor de directory van getfile.php wel voldoende is. Dit had echter geen enkel effect.
Wat moet ik doen om de data dat geproduceerd wordt door getfile.php (of fpassthru) netjes gelimiteerd te krijgen met mod_bandwidth?
Overigens is dit een leuke oplossing, maar ik doe het het liefst met mod_bandwidth:
Kees in "Met PHP downloadsnelheid aansturen"
Wat is het verhaal: Ik heb een filemanager gemaakt met een downloadscript. Je weet wel, zoeen om downloads te registreren en hot-linken te voorkomen.
De bestanden hebben op harddisk een naam als "file_4f85c3" in een directory buiten de web-root. Het downloaden gaat via /getfile.php?id=4f85c3. In getfile.php staat uiteindelijk het volgende:
PHP:
1
2
3
4
| header("content-length: $filelen"); header('Content-Disposition: attachment; filename="'.$basename.'"'); $fp=fopen($storename, "r"); fpassthru($fp); |
Het probleem is echter dat mod_bandwidth wel de bestanden in dezelfde directory als getfile.php limiteerd, maar niet de te downloaden bestanden. Die komen dus op volle snelheid over.
Ik heb al geprobeerd om in een .htaccess-bestand of in httpd.conf de opslagdirectory hard in te stellen door "BandWidthModule On" en "BandWidth all 10240" te plaatsen, wat voor de directory van getfile.php wel voldoende is. Dit had echter geen enkel effect.
Wat moet ik doen om de data dat geproduceerd wordt door getfile.php (of fpassthru) netjes gelimiteerd te krijgen met mod_bandwidth?
Overigens is dit een leuke oplossing, maar ik doe het het liefst met mod_bandwidth:
Kees in "Met PHP downloadsnelheid aansturen"
"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron