![]() |
Перл с 6 версии - компилируемый, кстати. Сейчас начну читать документацию по перл6(он еще не вышел) :)
|
Перл вроде и раньше был компилируемый, но я могу ошибаться =)) Вообщем, как ты понял, прога должна принимать параметры, сверять их и отдавать файл из указанной диры, нужно иметь возможность контролировать трафик (кол-во потоков, ограничение по скорости в зависимости от региона итп). И если все ок, то можно будет двигать продукт как очень не плохой аналог nginx для сайтов-антиличеров. Может показаться сложным ограничивать трафик\скорость в зависимости от географии пользователя, на самом деле там должно быть все очень просто. Главное написать ограничитель по скорости, а табличку "диапазон_IP - география пользователя" достать не сложно =)
|
все кроме ограничения трафика пишется парой строк =)
с ограничением трабла... стандартные модули не смогу переписать, умения наверно не хватит... |
Не ограничение по трафу я хотел сказать, а по скорости. тут ничего тоже сложного быть не должно. Просто скорость ограничить сможешь? Например через каждые 20 послыннах килобайт делать sleep() на там пол секунды. Расчитать влияние пропорции времени задержки на скорость скачивания и все =)
|
это-то понятно, просто чтобы найти этот кусок в исходниках веб-сервера =)
одна мысль мутит =) |
Не бойся сложностей и все у тебя получится =)
|
А если чанками отдавать:? то етсь не грузить 20 метров для каждого желающего, а как для докачки -- допустим выкачал 200 Кб, подгрузил еще 200.
|
Цитата:
Accept-Ranges: bytes Content-Length: <размер_файла_в_байтах> Content-Type: text/plain (see HTTP RFC) а дальше просто как не в чём не бывало выводи в браузер содержимое файла, т.к. пользователя редиректить на файл напрямую не будет, УРЛ он не узнает, а для браузера или довнлод-мененджера вообще не будет разницы, что ты передаш ему файл таким способом, что укажеш урл вроде site.ru/downloads/file.rar Цитата:
Цитата:
|
Цитата:
|
| Время: 23:09 |