Файлошаренье
Вообще, сюда бы некисло много всего, но пока тут опять же мелкозаготовочка
Слова
metalink
https://ru.wikipedia.org/wiki/Metalink
открытый формат файлов на основе XML, предназначенный для описания ссылок на файлы для загрузки по протоколам HTTP, FTP, bittorrent и т. п.
Несколько адресов (FTP, HTTP, P2P), по которым расположен один и тот же файл для закачки, размещаются в одном метафайле с расширением .metalink. Использование файла подобного формата позволяет, с одной стороны, увеличить надёжность в случаях, когда файл по части адресов будет недоступен, с другой — для компьютеров с высокоскоростным подключением к сети — увеличить интенсивность процесса скачивания посредством закачки сегментов файла одновременно из разных источников (сегментированная закачка).
Помимо этого, формат помогает реализовать автоматическую проверку загруженных файлов по контрольным суммам, автоматическое восстановление поврежденных файлов, одновременное добавление в очередь закачки нескольких файлов (путем их перечисления в метафайле), автоматический выбор наиболее подходящих для конкретной операционной системы и языка файлов.
Формат Metalink расширяем, и позволяет включать несколько частичных и полных хешей, контрольных сумм и PGP-ключей. Однако, большинство клиентов поддерживают проверку только по контрольным суммам MD5, SHA-1 и SHA-256. Помимо хранения адресов FTP-, HTTP-зеркал и rsync, поддерживается включение P2P-ссылок — bittorrent, ed2k и magnet.
Из того, что у меня есть, это понимает aria2.
Идея хороша, но похоже, никакие реализации не стали популярны.
Webseed
Это когда в числе источников выдаются и http/ftp ссылки, чтоб не найденное у пиров можно было стянуть с веба.
Проги
aria2
aria2 - это утилита для загрузки файлов. Поддерживаемые протоколы: HTTP(S), FTP, Bittorrent и Metalink. aria2 может загрузить файл с разных источников/протоколов и пытается максимально использовать пропускную способность канала. Есть поддержка загрузки файла по протоколам HTTP(S)/FTP и Bittorrent одновременно, пока данные загружаются по HTTP(S)/FTP, они тут же могут выгружаться в Bittorrent-рой. Используя контрольные суммы блока данных для Metalink, aria2 автоматически проверяет части данных во время загрузки файла.
- https://aria2.github.io/ - их сайтег.
- https://github.com/ziahamza/webui-aria2 - web-ui к арии, вроде как даже удалённенько можно.
buildtorrent
для создания торрентов. Ибо не все, кто умеет скачивать, умеют и создавать. Умеет добавлять webseed.
mktorrent
тож создавать торренты.
lftp
lftp is a file transfer program that allows sophisticated FTP, HTTP and other connections to other hosts. If site is specified then lftp will connect to that site otherwise a connection has to be established with the open command.
lftp can handle several file access methods - FTP, FTPS, HTTP, HTTPS, HFTP, FISH, SFTP and file (HTTPS and FTPS are only available when lftp is compiled with GNU TLS or \penSSL library). You can specify the method to use in `open URL' command, e.g. `open http://www.us.kernel.org/pub/linux'. HFTP is ftp-over-http-proxy protocol. It can be used automatically instead of FTP if ftp:proxy is set to `http://proxy[:port]'. Fish is a protocol working over an ssh connection to a unix account. sftp is a protocol implemented in SSH2 as SFTP subsystem.
Besides FTP-like protocols, lftp has support for Bittorrent protocol as `torrent' command. Seeding is also supported.
Every operation in lftp is reliable, that is any non-fatal error is handled properly and the operation is repeated. So if downloading breaks, it will be restarted from the point automatically. Even if FTP server does not support the REST command, lftp will try to retrieve the file from the very beginning until the file is transferred completely.