Пользователи имеют возможность скачивать файлы с сайта, но, во первых необходимо ограничивать скорость скачивания, во вторых, не показывать реальный адрес файла.
Реализовали это на PHP, таким образом:
/* Тут заранее проверяется если пользователь имеет разрешения на скачивание данного файла */
$url = 'myfilehosting.ru/file.rar'; // Адрес расположения файла
$download_rate = 50; //Скорость с которой будет скачиватся.
header('Cache-control: private');
header('Content-type: '.mime_content_type($url));
header("Content-Length: ".$contentLength); // Значение переменной заранее определятся
header('Content-Disposition: filename=myfile.rar');
flush();
$file = fopen($url, "r");
while(!feof($file)) {
echo fread($file, round($download_rate * 1024));
flush();
usleep(150000);
}
fclose($file);
exit();
Во первых если начать скачивать файл, то пока он не скачается, нельзя ходить по сайту, просто все страницы очень долго грузятся. С чем это может быть связано ?
То что этот механизм реализован на PHP, очень напрягает, поговаривают что так плохо делать.
Собственно вопрос, как можно еще подобное реализовать, при том что бы:
иметь возможность делать проверку, если пользователь имеет доступ к файлу.
иметь возможность ограничивать скорость с которой будет отдаваться файл пользователю
иметь возможность не показывать реальный адрес местонахождения файла.
Может есть какие статьи полезные как это все можно реализовать ?