PHP: Создание торрент файла

Сегодня я расскажу Вам как создать torrent файл средствами языка программирования PHP и начать раздавать его.
Причин создать торрент файл в PHP может быть много. Одна из них снижение нагрузки на Ваш сервер. Допустим Вы предоставляете посетителям своего сайта скачивать файлы не маленького размера. Если много людей будут скачивать Ваши файлы, то не ограничивая их скорость закачки, Вы можете забить свой канал. А это повлияет на работоспособность сайта в целом.
Поэтому одним из выходов в данной ситуации будет раздача файлов с помощью торрента. Мы не будем изобретать велосипед и писать код создания файла. Уже существует достаточно известная и мощная библиотека Torrent RW. Она небольшая, состоит из одного файла и очень популярна среди разработчиков. Загружаем файл Torrent.php на сервер и в нужно месте пишем код:

include 'ПУТЬ-ДО-ФАЙЛА/Torrent.php';
$file = 'ПУТЬ-ДО-ФАЙЛА-КОТОРЫЙ-ХОТИМ-РАЗДАТЬ';
$url = 'URL-ДО-ФАЙЛА-КОТОРЫЙ-ХОТИМ-РАЗДАТЬ'; 
$name = 'ИМЯ РАЗДАЧИ'; //можно написать basename($file)
$torrentFile = 'ИМЯ ФАЙЛА ТОРРЕНТА'; //без .torrent на конце

$torrent = new Torrent(array($file), 'udp://tracker.openbittorrent.com:80'); //Добавляем файл и трекер
$torrent->announce('http://retracker.local/announce'); //Добавляем еще один трекер
$torrent->url_list(array($url)); //Добавляем Web сида, что бы Ваш файл могли качать с сервера
$torrent->name($name);
if ($errors = $torrent->errors()) { //В случае каких ошибок покажем их
    var_dump($errors); 
    exit;
}
$torrent->send($torrentFile.'.torrent');
exit;

При вызове, данный код предложит Вам скачать файл. Запустив его Вы начнете скачивание. Первый человек всегда будет качать файл только с Вашего сервера. Однако последующие, помимо вашего сервера, будут скачивать файл и с других пользователей, при условии, что они остались на раздаче файла.

Запись опубликована в рубрике PHP с метками , , , , , , . Добавьте в закладки постоянную ссылку.