Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Как с помошью скрипта PHP ограничить скорость загрузки файла (https://forum.antichat.xyz/showthread.php?t=115047)

mastaadon 08.04.2009 23:34

Как с помошью скрипта PHP ограничить скорость загрузки файла
 
У меня проблемы с хостером. Мой счет был приостановлен из за того что файлы с скачиваемые с сайта загружают (сервер или канал так неразборчиво объяснили). В общем мне предлагаются установить PHP скрипт который будет регулировать скорость загрузки файлов.

You need to limit the downloading speed for your files. You can do it over the some php script. If you need more info of it, please contact some web-developer and ask about it.

Может кто посоветует что либо по этому поводу. Было бы прекрасно если бы мне не пришлось заниматься каждым файлом индивидуально ( в смысле наложить какие то ограничения на папку где хранятся файлы).

Спасибо заранее.

Zitt 08.04.2009 23:57

http://www.google.com/search?hl=ru&client=opera&rls=ru&hs=qry&ei=aQHdSbX vD9uJsAb7vM2oDA&sa=X&oi=spell&resnum=1&ct=result&c d=1&q=php+%D1%81%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1% 82%D1%8C+%D0%BE%D1%82%D0%B4%D0%B0%D1%87%D0%B8+%D1% 84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2&spell=1

первые три ссылки...

ntldr 08.04.2009 23:57

Чтобы ограничить скорость скачивания нужно сделать ограничения в самом скрипте через который ведется скачивание. Например:

$f=fopen("DownloadMe","r");
while(!feof($f))
{
echo fgets($f,1024);
(тут задкржка, например sleep(0.1); )
}

.:EnoT:. 09.04.2009 00:01

Хостер какой-то колхозный, если такую фигню пишет.


ну как вариант:
PHP код:

<?php

$openFile 
fopen('file.zip''rb');
$speed 1024//  kb/s

while(!feof($openFile) && !connection_status()) {
    echo 
fread($openFile, ($speed $speed 1024));
    
flush();
    
ob_flush();
    if (
$speedsleep(1);
}

?>

Вот такое нехитрое органичение скорости скачивания. Соответственно если $speed установить в 0, ограничения не будет



// опередили =\

.:EnoT:. 09.04.2009 00:03

ntldr
fgets() для бинарных файлов крайне не желательна )

ntldr 09.04.2009 00:05

Цитата:

Сообщение от .:EnoT:.
ntldr
fgets() для бинарных файлов крайне не желательна )

да я просто принцип хотел показать.

mastaadon 09.04.2009 00:30

Вся беда в том что ссылки на файлы прямые и лежат на разных страницах сайта. В основном это мультимедийные файлы и объемы довольно большие. Одновременное скачивание нескольких файлов посетителями сайта (особенно с европы) с большими скоростями видимо забивает канал хостера.

Сам хостер конечно дешевый и соответственно хреновый. (300 GB/5TB = 11.95$ в месяц).

Если нет возможности ограничить скорость скачивания всех файлов в определенной папке то это значить нужно переписать все страницы где даны ссылки.

Может быть устроил вариант запретить с одного IP одновременное скачивание более чем одного файла.

Я стою перед фактом сменить хостера ( а это пере залить как минимум 200 ГБ) или найти решение проблемы.

Кто что посоветует?

ntldr 09.04.2009 00:59

если ссылки раскиданы по разным местам, нужно сделать правило мод реврайта, чтобы файлы с заданными расширениями к примеру /download/lol.rar автоматически реврайтился на /limit.php?file=/download/lol.rar, где limit.php - скрипт, выдающий файл с ограничением по скорости.

nerezus 09.04.2009 01:16

Цитата:

Сам хостер конечно дешевый и соответственно хреновый. (300 GB/5TB = 11.95$ в месяц).
Стоп.
Ты превысил ограничения в 5Тб или нет?
Если нет, то требуй включить. Проблемы на их стороне, а они просто пытаются переложить их на тебя.

nerezus 09.04.2009 01:17

Цитата:

(300 GB/5TB = 11.95$ в месяц).
хочешь подскажу 100GB/75TB за такие же деньги?) С рутом.


Время: 02:20