Witam :)
Jestem w trakcie przygotowywania zlecenia na serwis serwujący pliki (zarówno obrazki jak i paczki zip). Zleceniodawca zażyczył sobie dodatkowo zablokowanie hotlinku zdjęć, i plików + możliwość limitowania prędkości pobierania zależnie od rangi usera.
Teoretycznie problem ten rozwiązuje poniższy skrypt:
<?php
//kod znaleziony dawno temu w internecie, wersja podglądowa bez jakichkolwiek zabezpieczeń
$file = $_GET['file'];
$speed = 32;
if (file_exists($file) && is_file($file))
{
header('Cache-control: private');
header('Content-Type: application/octet-stream');
header('Content-Length: '.filesize($file));
header('Content-Disposition: filename='.$file);
flush();
$fp = fopen($file, 'r');
while (!feof($fp))
{
echo fread($fp, round($speed*1024));
flush();
sleep(1);
}
fclose ($fp);
}
?>
Jednak paczki mogą mieć nawet po 500mb+ wiec obawiam się ze przesłanie tego w taki sposób może zarznąć Apacha (do tego jak sądzę max_execution_time skutecznie będzie zabijać wywołania tego skryptu). No i managary pobierania nie będą mogły wznawiać utraconych połączeń.
W jaki sposób rozwiązują to duże serwisy typu wrzuta ? (z tego co wiem oni limitują prędkość do 20kb).
Są jakieś sposoby oprócz .htacces ? :) Proszę o jakiekolwiek wskazówki.
P.S. Serwis i tak wyląduje na serwerze dedykowanym więc w gre wchodzą również nietypowe rozwiązania