бесплатный
платный
там везде написано что мол если за деньги, будет скачка быстрее...
так вот!
это правда или замануха для ламеров? как они могут ограничить скорость моего интернета?
если можно как-то замедлить загрузку с своего сайта то как?
прошу дать код посмотрю
Спустя 17 минут, 31 секунда (25.07.2011 - 20:52) VELIK505 написал(а):
Конечно правда они на этом зарабатывают. Там просто есть допустим 2 интернет канала.
1 мощный другой бичёвский если ты халявщик тебе по бичёвскому каналу отдают а если нет то по мощному.
1 мощный другой бичёвский если ты халявщик тебе по бичёвскому каналу отдают а если нет то по мощному.
Спустя 10 минут, 27 секунд (25.07.2011 - 21:02) ИНСИ написал(а):
johniek_comp также через php можно регулировать скорость отдачи файла. Помню где-то был класс по закачке, если найду скину
Спустя 9 минут, 51 секунда (25.07.2011 - 21:12) Invis1ble написал(а):
INSIDIOUS
Цитата |
также через php можно регулировать скорость отдачи файла |
любопытно было бы взглянуть
Спустя 19 минут, 25 секунд (25.07.2011 - 21:32) johniek_comp написал(а):
Invis1ble
вот-вот мне говорят что можно через пхп...но КАК?
вот-вот мне говорят что можно через пхп...но КАК?
Спустя 1 час, 15 минут, 25 секунд (25.07.2011 - 22:47) Nikitian написал(а):
Средствами php бред - пока не отдастся файл, пых будет висеть в памяти, а он со всеми модулями не маленький, опять же и через апач вообще может быть подключен пых модулем.
Делал через внутренний редирект Nginx и такой конфиг:
Соответственно, если внутренний редирект без "?premium" в конце, то отдаётся со скоростью 10Кбит/с, если есть, то с максимальной скоростью канала сервера.
Делал через внутренний редирект Nginx и такой конфиг:
location /files {
root /var/www/site.ru;
if ( $query_string !~* 'premium' ) {
set $limit_rate 10k;
}
internal;
}
Соответственно, если внутренний редирект без "?premium" в конце, то отдаётся со скоростью 10Кбит/с, если есть, то с максимальной скоростью канала сервера.
Спустя 1 минута, 33 секунды (25.07.2011 - 22:49) Invis1ble написал(а):
Nikitian
интересно. А без nginx средствами apache2 возможно ли такое повторить?
интересно. А без nginx средствами apache2 возможно ли такое повторить?
Спустя 3 минуты, 6 секунд (25.07.2011 - 22:52) Nikitian написал(а):
Можно через mode_bandwidth/ но не уверен, что там можно как-то разграничивать на разные скорости.
Ну и раздавать статику апачем как-то уже отвык.
Ну и раздавать статику апачем как-то уже отвык.
Спустя 1 час, 12 минут, 23 секунды (26.07.2011 - 00:04) ИНСИ написал(а):
Цитата |
Средствами php бред - пока не отдастся файл |
Ранее был с тобой во всем согласен, но в данном случае не совсем :) Нашел я все таки класс:
class download{
var $properties = array(
'old_name' => '',
'new_name' => '',
'type' => '',
'size' => '',
'resume' => '',
'max_speed' => ''
);
var $range = 0;
function download($path, $name = '', $resume = 0, $max_speed = 0){
$name = ($name == '') ? substr(strrchr('/'.$path.'/'),1) : $name;
$name = explode("/", $name);
$name = end ($name);
$file_size = filesize($path);
$this->properties = array(
'old_name' => $path,
'new_name' => $name,
'type'=> "application/force-download",
'size' => $file_size,
'resume' => $resume,
'max_speed' => $max_speed
);
if ($this->properties['resume']) {
if(isset($_SERVER['HTTP_RANGE'])) {
$this->range = $_SERVER['HTTP_RANGE'];
$this->range = str_replace("bytes=", "", $this->range);
$this->range = str_replace("-", "", $this->range);
} else {
$this->range = 0;
}
if ($this->range > $this->properties['size']) $this->range = 0;
} else {
$this->range = 0;
}
}
function download_file(){
if ($this->range) {
header($_SERVER['SERVER_PROTOCOL']." 206 Partial Content");
} else {
header($_SERVER['SERVER_PROTOCOL']." 200 OK");
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: ".$this->properties["type"]);
header('Content-Disposition: attachment; filename="'.$this->properties['new_name'].'";');
header("Content-Transfer-Encoding: binary");
if ($this->properties['resume']) header("Accept-Ranges: bytes");
if ($this->range) {
header("Content-Range: bytes {$this->range}-".($this->properties['size']-1)."/".$this->properties['size']);
header("Content-Length: ".($this->properties['size']-$this->range));
} else {
header("Content-Length: ".$this->properties['size']);
}
@ini_set('max_execution_time', 0);
@set_time_limit();
$this->_download($this->properties['old_name'], $this->range);
}
function _download ($filename, $range =0) {
@ob_end_clean();
if (($speed = $this->properties['max_speed']) > 0)
$sleep_time = (8 / $speed) * 1e6;
else
$sleep_time = 0;
$handle = fopen($filename, 'rb');
fseek($handle,$range);
if ($handle === false)
{
return false;
}
while (!feof($handle))
{
print (fread($handle, 1024*8));
ob_flush();
flush();
usleep($sleep_time);
}
fclose($handle);
return true;
}
}
Спустя 7 минут, 12 секунд (26.07.2011 - 00:11) Invis1ble написал(а):
INSIDIOUS
костыльненько
костыльненько
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 9 минут, 12 секунд (26.07.2011 - 00:20) ИНСИ написал(а):
Invis1ble
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 1 час, 34 минуты, 10 секунд (26.07.2011 - 01:55) Nikitian написал(а):
INSIDIOUS
И с чем же не согласен? В этом примере весь джентльменский набор подводных камней: max_execution_time, set_time_limit() - те самые костыли, которые не факт, что заработают, будучи установленными, а если и заработают, то посмотрите как этот скрипт будет отдавать например фильм... ну или просто какой-нибудь архив на пару сотен метров. Пользовать дождётся - ему-то что, а вот сервер будет тянуть всех пользователей и тянуть доооолго забивая память своими экземплярами. Например у меня 1 апачевский воркрер съедает 10 мегабайт памяти.
И с чем же не согласен? В этом примере весь джентльменский набор подводных камней: max_execution_time, set_time_limit() - те самые костыли, которые не факт, что заработают, будучи установленными, а если и заработают, то посмотрите как этот скрипт будет отдавать например фильм... ну или просто какой-нибудь архив на пару сотен метров. Пользовать дождётся - ему-то что, а вот сервер будет тянуть всех пользователей и тянуть доооолго забивая память своими экземплярами. Например у меня 1 апачевский воркрер съедает 10 мегабайт памяти.
Спустя 23 минуты, 40 секунд (26.07.2011 - 02:18) Invis1ble написал(а):
Кстати, еще set_time_limit(); выдаст warning (просто он будет заглушен собакой)
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 7 часов, 38 минут, 31 секунда (26.07.2011 - 09:57) bel0m0r написал(а):
Тоже интересуюсь данной темой, нашёл вот
Спустя 1 час, 45 минут, 48 секунд (26.07.2011 - 11:43) ИНСИ написал(а):
Nikitian я согласен, что средствами php делать замедление скачивание - не правильно. Я лишь говорю, что на php можно реализовать такое.
_____________
![user posted image](http://cs617917.vk.me/v617917650/a794/Su9dwRjnK3k.jpg)