aria2 - быстрый и удобный загрузчик файлов с открытым исходным кодом
Aria2 - это мощная и быстрая утилита, предназначенная для загрузки файлов из Интернета. Она поддерживает множество протоколов, включая HTTP(S), FTP, SFTP, BitTorrent и Metalink, и может одновременно загружать несколько файлов.
Aria2 написана на C++ и выпускается под лицензией GNU GPL. Она поддерживает множество функций, в том числе:
- Загрузка файлов из нескольких источников одновременно
- Разбивка файлов на части для ускорения загрузки
- Возобновление загрузки после обрыва связи
- Контроль целостности загружаемых данных с помощью хэш-сумм
- Ограничение скорости загрузки
- Поддержка прокси-серверов
Для использования Aria2 необходимо установить ее на свой компьютер. В Linux это можно сделать с помощью пакетного менеджера, например:
sudo apt-get install aria2
После установки Aria2 можно использовать из командной строки. Например, для загрузки файла можно выполнить следующую команду:
aria2c https://example.com/file.zip
Это загрузит файл file.zip с сервера example.com. При этом Aria2 будет автоматически разбить файл на части и загрузить их параллельно, чтобы ускорить процесс загрузки.
Aria2 также поддерживает конфигурационный файл, в котором можно задавать различные параметры, например, скорость загрузки или порт для загрузки файлов BitTorrent. Вот пример такого файла:
# Ограничить скорость загрузки до 2 Мб/с
--max-download-limit=2M
# Использовать порт 6881 для BitTorrent
--listen-port=6881
# Сохранять загруженные файлы в папку ~/downloads
--dir=/home/user/downloads
# Использовать прокси-сервер
--http-proxy=http://proxy.example.com:8080/
Этот файл можно сохранить, например, как aria2.conf в домашней папке пользователя, и потом запускать Aria2 с указанием этого файла:
aria2c --conf-path=/home/user/aria2.conf https://example.com/file.zip
Пример использования Aria2 в Python:
import aria2p
aria2 = aria2p.API()
# Добавление загрузки
download = aria2.add_uris(['https://example.com/file.zip'])
gid = download.gid
# Получение статуса загрузки
status = aria2.tell_status(gid)
print('Загрузка:', status.name)
print('Состояние:', status.status)
# Получение информации о файлах
files = aria2.get_files(gid)
for f in files:
print('Файл:', f.path)
# Получение информации о частях файла
peers = aria2.get_peers(gid)
for p in peers:
print('Часть:', p.index, 'Состояние:', p.peer_state)