Страницы

Поиск по вопросам

Показаны сообщения с ярлыком torrent. Показать все сообщения
Показаны сообщения с ярлыком torrent. Показать все сообщения

суббота, 7 декабря 2019 г.

Архитектура web torrent клиента

#java #spring_mvc #архитектура #torrent


Подскажите как правильно организовать локальную торрент качалку с веб интервейсом.
Сам торрент клиент уже написан. Осталось прикрутить веб. Стоит ли ради "такого" дела
поднимать спринг или же есть альтернативные пути? Если стоит прикрутить спринг, насколько
подходит архитектура mvc?

Торрент клиент на вход получает файл.torrent(или же путь к файлу) и путь для сохранения.
С возможностью выдачи статистических данных. Никакой безопасности и многопользовательности.
    


Ответы

Ответ 1



А в чем сомнения возникли? Вам же по сути надо сделать CRUD для управления торрентами. Любой MVC тут подойдет. Но можно и без него. Архитектурно у вас уже есть разделение на UI и саму качалку. Если у вас нет конкретных требований к аппаратным ресурсам делать можно на чем нравится. Варианты: если хочется клиентскую часть сделать максимально тонкой - Spring Boot, Spring MVC, любой шаблонизатор (JSP, Thymeleaf, Velocity). если хочется попробовать SPA, то какой-нибудь не слишком тяжелый сервер (Jetty, Undertow, Ratpack) и JAX-RS обвязка для REST (Jersey, RESTeasy), или даже вовсе без нее, а UI ваять на JS. если хочется SPA без JavaScript, то можно попробовать GWT (Google Web Toolkit), но это путь в никуда. если все же железо слабое, и хочется чего-то с минимальным footprint, то лучше вообще отказаться от Java, а попробовать Python или даже Lua. Под них тоже достаточно как полноценный MVC, так минималистичных микро-web-фреймворков.

среда, 27 ноября 2019 г.

Создать торрент файл


У меня есть сервер Apache на котором лежит картинка. Нужно создать торрент файл
который начал бы раздачу этой картинки.
Мне не нужен торрент трекер. Я просто хочу раздавать файл с сервера.
    


Ответы

Ответ 1



Нужно создать торрент файл, который начал бы раздачу этой картинки. Три варианта создания торрент файла. Начнем с установки нужных пакетов в composer: Установить composer composer require coldwinds/torrent-rw Добавить в файл require_once("vendor/autoload.php"); php -f your-file.php save('test.torrent'); // save to disk // На этом в принципе создание торрент файла закончено // если поместить его в директорию, которая доступна из вне, то // теоритически можно раздавать... // практически придется выбирать трекер из возможных списков //---------------------------------------------------------------- // Если хочется вывести в браузер информацию о созданном файле // get torrent infos $torrent = new Torrent( './test.torrent' ); echo '
private: ', $torrent->is_private() ? 'yes' : 'no', '
annonce: ', $torrent->announce(), '
name: ', $torrent->name(), '
comment: ', $torrent->comment(), '
piece_length: ', $torrent->piece_length(), '
size: ', $torrent->size( 2 ), '
hash info: ', $torrent->hash_info(), '
stats: '; var_dump( $torrent->scrape() ); echo '
content: '; var_dump( $torrent->content() ); echo '
source: ', $torrent; // get magnet link $torrent->magnet(); // use $torrent->magnet( false ); to get non html encoded ampersand torrent-rw док Ещё одни вариант создания торрент файла php: >=5.3.2: Команда: composer require christeredvartsen/php-bittorrent Файл: setComment('Some comment') ->save('/save/to/path/file.torrent'); php-bittorrent док Ещё один пример php: >=7.1: Команда: composer require sandfoxme/torrent-file Файл: store('your-file.torrent'); torrent-file док

Ответ 2



Самый простой способ: создать .torrent файл с помощью клиента на своем компьютере (имея копию файлов с сервера на компьютере) и указать веб-сид. В программе qBittorrent это делается так: После этого файл будет доступен к скачиванию через торрент с сервера с помощью .torren файла, а так же будет распространятся в сети DHT и позже пользователи смогут скачивать файл у других пользователей сети, которые уже скачали файл.

Ответ 3



Делать такие вещи с помощью скриптовых языков несколько странно, ведь есть специально предназначенные для этого программы. Например: sudo apt install ctorrent Затем: ctorrent -t -u udp://tracker.open-internet.nl:6969/announce -s example.tar.torrent example.tar Эту команду можно завернуть в exec() если совершенно необходимо делать из PHP. Это половина задачи. Вторая половина - раздавать этот файл. Для этого не нужен PHP, а нужно настроить консольный клиент: sudo apt install rtorrent screen Затем: screen rtorrent example.tar.torrent И Ctrl+A D чтобы вернуться в консоль. Ваш файл раздается на весь интернет. Можно научить rtorrent автоматически подхватывать .torrent файлы из какого-то каталога начиная раздачу. Кроме того, для rtorrent есть множество видов веб-GUI на любой вкус и цвет. В итоге можно сделать так чтобы для каждого из файлов в каталоге создавался .torrent затем автоматически раздавался. Apache здесь нужен лишь чтобы показать список .torrent файлов. PHP не нужен вообще. Пожалуйста, четкий порядок действий, от создания торрент файла, до раздачи его по сети - прямо перед вами.

суббота, 6 июля 2019 г.

Работа с торрент файлами во flash

Если кто пользуется программой uTorrent, вы наверно видели там функцию просмотра видео в потоке, т.е. киношка проигрывается в ихнем плеере прямо в процессе скачивания. Мне вот интересно, возможно ли реализовать похожую вещь только в веб, не скачивая перед сам файл на сервер ? Т.е. чтобы все происходило на стороне клиент, например во flash приложении. Пытался искать информацию по работе с торрент файлами в флеше, ничего не нашел, постоянно предлагают скачать что-то с торрентов)) Накидайте ссылок по теме, если это вообще возможно конечно.


Ответ

Пока во флеше смотреть это не получится. Говоря очень просто: флеш умеет ловить поток только RTMP или RTMFP - это проприетарные протоколы, судя по всему надстроенные над базовым RTP. А торрентовое видео вероятнее всего идет в соответствии с протоколом HLS (либо похожим), и флеш его проиграть никак не сумеет. Хотя говорят, что JWPlayer поддерживает HLS - посмотрите сами.

четверг, 11 октября 2018 г.

Архитектура web torrent клиента

Подскажите как правильно организовать локальную торрент качалку с веб интервейсом. Сам торрент клиент уже написан. Осталось прикрутить веб. Стоит ли ради "такого" дела поднимать спринг или же есть альтернативные пути? Если стоит прикрутить спринг, насколько подходит архитектура mvc?
Торрент клиент на вход получает файл.torrent(или же путь к файлу) и путь для сохранения. С возможностью выдачи статистических данных. Никакой безопасности и многопользовательности.


Ответ

А в чем сомнения возникли? Вам же по сути надо сделать CRUD для управления торрентами. Любой MVC тут подойдет. Но можно и без него. Архитектурно у вас уже есть разделение на UI и саму качалку.
Если у вас нет конкретных требований к аппаратным ресурсам делать можно на чем нравится.
Варианты:
если хочется клиентскую часть сделать максимально тонкой - Spring Boot, Spring MVC, любой шаблонизатор (JSP, Thymeleaf, Velocity). если хочется попробовать SPA, то какой-нибудь не слишком тяжелый сервер (Jetty, Undertow, Ratpack) и JAX-RS обвязка для REST (Jersey, RESTeasy), или даже вовсе без нее, а UI ваять на JS. если хочется SPA без JavaScript, то можно попробовать GWT (Google Web Toolkit), но это путь в никуда. если все же железо слабое, и хочется чего-то с минимальным footprint, то лучше вообще отказаться от Java, а попробовать Python или даже Lua. Под них тоже достаточно как полноценный MVC, так минималистичных микро-web-фреймворков.