|
|
|
| Появлиась необходимость проксирования файлов, и их отдачи скриптом.
Собственно код:
<?
$file = 'http://host.ru/file.avi';
header($_SERVER["SERVER_PROTOCOL"].' 200 OK');
header('Content-Type: '.$type);
header('ETag: '.sprintf('%x-%x-%x', time(), time(), time()));
header('Content-Length: '.getRemoteFileSize($file));
header('Connection: close');
header('Content-Disposition: attachment; filename="'.basename($file).'";');
$size = 0;
$f = fopen($file, 'r');
while(!feof($f)){
echo fread($f, 512);
flush();
$size += 512;
if(connection_aborted()){ break; }
}
fclose($f);
?>
|
Но из за такого подхода сервер 2ггц, 2гб загружается по полной.
Можно данный скрипт как то оптимизировать и снизить нагрузку??
Понимаю что подход плохой, но очень нужно. | |
|
|
|
|
|
|
|
для: loli
(09.03.2011 в 14:27)
| | Хм... правильно ли я понимаю, что файл сначала скачивается с удаленного хоста (или это тот же самый хост), а потом отдается клиенту? | |
|
|
|
|
|
|
|
для: cheops
(09.03.2011 в 18:31)
| | Да правильно, скачивается удаленно и отдается. | |
|
|
|
|
|
|
|
для: loli
(09.03.2011 в 18:43)
| | Хм... тогда от PHP нужно отказываться и реализовывать этот мини-сервер на каком-то более серьезном языке. | |
|
|
|