Aria2 что это
Перейти к содержимому

Aria2 что это

  • автор:

aria2 (Русский)

Состояние перевода: На этой странице представлен перевод статьи Aria2. Дата последней синхронизации: 7 декабря 2017. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

С домашней страницы проекта:

aria2 — это легкая мультипротокольная и многопоточная консольная утилита загрузки. Она поддерживает HTTP/HTTPS, FTP, BitTorrent и Metalink. aria2 можно управлять с помощью встроенных интерфейсов JSON-RPC и XML-RPC.

Установка

Также можете поставить aria2-systemd для использования aria2 в качестве демона.

Примечание: Для запуска пакета aria2 используется команда aria2c . Данное наименование было сохранено для обратной совместимости.

Настройка

aria2.conf

aria2 использует файл $XDG_CONFIG_HOME/aria2/aria2.conf для установки глобальных параметров по умолчанию. Это поведение может быть изменено переключателем —conf-path :

  • Скачайте aria2.example.rar используя параметры, указанные в файле настроек /file/aria2.rapidshare
$ aria2c --conf-path=/file/aria2.rapidshare http://rapidshare.com/files/12345678/aria2.example.rar

Если существует $XDG_CONFIG_HOME/aria2/aria2.conf и параметры, указанные в /file/aria2.rapidshare нужны, то переключатель —no-conf должен быть добавлен к команде:

  • Не использовать файл настроек по умолчанию и скачать aria2.example.rar , используя параметры, указанные в файле настроек /file/aria2.rapidshare
$ aria2c --no-conf --conf-path=/file/aria2.rapidshare http://rapidshare.com/files/12345678/aria2.example.rar

Если $XDG_CONFIG_HOME/aria2/aria2.conf пока не существует, и вы хотите упростить управление параметрами настроек:

$ touch $XDG_CONFIG_HOME/aria2/aria2.conf

Пример aria2.conf

continue dir=$/Desktop file-allocation=none input-file=$/.aria2/input.conf log-level=warn max-connection-per-server=4 min-split-size=5M on-download-complete=exit

Это по существу тоже самое, что и при выполнении:

$ aria2c dir=$/Desktop file-allocation=none input-file=$/.aria2/input.conf on-download-complete=exit log-level=warn FILE

Примечание: Пример файла aria2.conf, приведенный выше, может неверно использовать переменную $HOME. Некоторые пользователи сообщали о том, что использование фигурных скобок приводит к созданию отдельной поддиректории $ в рабочем каталоге aria2. Такую директорию может быть сложно обработать, так как bash будет принимать ее за переменную окружения $HOME. В текущий момент рекомендуется использовать абсолютные пути в aria2.conf.

Детали опций

continue Продолжить загрузку частично загруженного файла, если существует соответствующий файл управления. dir=$/Desktop Каталог для сохранения загруженных файлов ~/Desktop . file-allocation=none Указать метод резервирования места для файла. none — не происходит предварительное резервирование места для файла. prealloc — предварительное резервирование места для файла перед началом загрузки. (По умолчанию: prealloc) 1 input-file=$/.aria2/input.conf Скачать список построчно, или разделённых TAB’ом URI, найденных в ./aria2/input.conf log-level=warn Задать уровень вывода событий на консоль. warn — только для вывода предупреждений и ошибок (По умолчанию: debug) max-connection-per-server=4 Максимально количество соединений (4) с одним сервером для каждой загрузки. (По умолчанию: 1) min-split-size=5M Разбить файл, только если размер больше, чем 2*5MB = 10MB. (По умолчанию: 20M) on-download-complete=exit Выполнить команду exit и выйти из оболочки, когда сессия загрузки завершена.

Пример входного файла #1
  • Загрузка aria2-1.10.0.tar.bz2 из двух отдельных источников, до соединения в ~/Desktop aria2-1.10.0.tar.bz2
http://aria2.net/files/stable/aria2-1.10.0/aria2-1.10.0.tar.bz2 http://sourceforge.net/projects/aria2/files/stable/aria2-1.10.0/aria2-1.10.0.tar.bz2
Пример входного файла #2
  • Загрузить aria2-1.9.5.tar.bz2 и сохранить в /file/old как aria2.old.tar.bz2 &
  • Загрузить aria2-1.10.0.tar.bz2 и сохранить в ~/Desktop как aria2.new.tar.bz2
http://aria2.net/files/stable/aria2-1.9.5/aria2-1.9.5.tar.bz2 dir=/file/old out=aria2.old.tar.bz2 http://aria2.net/files/stable/aria2-1.10.0/aria2-1.10.0.tar.bz2 out=aria2.new.tar.bz2
Дополнительные замечания

1 —file-allocation=falloc Рекомендуется для новых файловых систем, таких как ext4 (с поддержкой экстентов), btrfs или xfs, потому что он выделяет большие файлы (ГБ) практически мгновенно. Не используйте falloc с устаревшими файловыми системами, такими как ext3, так как prealloc потребляет примерно такое же количество времени как и стандартное распределение, возможна блокировка процессов загрузки aria2.

Совет: Для ознакомления с полным перечнем опций настройки смотрите aria2c —help=#all и страницу документации aria2.

Пример aria2.rapidshare

http-user=USER_NAME http-passwd=PASSWORD allow-overwrite=true dir=/file/Downloads file-allocation=falloc enable-http-pipelining=true input-file=/file/input.rapidshare log-level=error max-connection-per-server=2 summary-interval=120
Описание опций

http-user=USER_NAME Устанавливает HTTP имя пользователя как USER_NAME для входа в систему защищённую паролем. Это влияет на все URIs. http-passwd=PASSWORD Устанавливает HTTP Пароль как PASSWORD для входа в систему защищённую паролем. Это влияет на все URIs. allow-overwrite=true Удалять контрольный файл перед загрузкой. При использовании с —allow-overwrite=true файл всегда загружается с нуля. Это может понадобиться пользователям за прокси-сервером, который блокирует возобновление загрузки. (По умолчанию: false) dir=/file/Downloads Загружать файл(ы) в /file/Downloads . file-allocation=falloc Указать метод резервирования места для файла posix_fallocate(3) . (По умолчанию: prealloc) enable-http-pipelining=true Включить HTTP/1.1 конвейерную обработку чтобы преодолеть задержки в сети и уменьшить нагрузку на сеть. (По умолчанию: false) input-file=/file/input.rapidshare Загрузить URI, перечисленные в файле input.rapidshare. Вы можете указать различные источники для одного объекта, перечислив различные URI в строке, разделенных символом TAB (табуляция). Дополнительные параметры можно указывать после каждой URI-строки. Cтроки параметров должны начинаться с одного или нескольких пробелов (SPACE или TAB) и содержать один параметр на строку. /file/input.rapidshare log-level=error Задать уровень вывода журнала событий.В данном случае вывод только ошибок. (По умолчанию: debug) max-connection-per-server=2 Максимально количество соединений с одним сервером для каждой загрузки 2. (По умолчанию: 1) summary-interval=120 Задать интервал в секундах (120) до вывода сообщения о прогрессе загрузки. Установка 0 запрещает вывод. (По умолчанию: 60) 3

Дополнительные замечания
  • Так как файл aria2.rapidshare содержит имя пользователя и пароль, рекомендуется установить права на файл 600, или аналогичные.
$ cd /file $ chmod 600 /file/aria2.rapidshare $ ls -l total 128M -rw------- 1 arch users 167 Aug 20 00:00 aria2.rapidshare

3 summary-interval=0 Подавляет ход процесса загрузки и может улучшить общую производительность. Журнал будет продолжать выводиться в соответствии со значениями, указанными в опции журнала уровней log-level .

Совет: Пример файла настройки также может быть применён к Hotfile, DepositFiles, и т.д. и т.п.

Примечание: Параметры командной строки всегда имеют преимущество перед параметрами, перечисленных в файле настроек.

Пример aria2.bittorrent

bt-seed-unverified max-overall-upload-limit=1M max-upload-limit=128K seed-ratio=5.0 seed-time=240
Описание опций

bt-seed-unverified=false Не проверять хеш файла (ов), перед раздачей. (По умолчанию: true) max-overall-upload-limit=1M Установить максимальную скорость загрузки в 1MB/сек. (По умолчанию: 0) max-upload-limit=128K Задать максимальную скорость отдачи каждого узла торрента в 128K/сек. (По умолчанию: 0) seed-ratio=5.0 Указать рейтинг. Сидировать завершенные торренты, пока рейтинг не станет больше 5.0. (По умолчанию: 1.0) seed-time=240 Указать время сидирования (раздачи) 240 минут.

Примечание: Если оба seed-ratio и seed-time указаны, сидирование заканчивается, когда по крайней мере одно из условий выполнено.

Пример aria2.daemon

Эта настройка может быть использована для запуска Aria2 в качестве службы. Также может использоваться в сочетании с несколькими интерфейсами, перечисленными ниже. Обратите внимание, что RPC-пользователя и rpc-pass устарели, но большинство интерфейсов не были ещё портированы на новую аутентификацию. Не забудьте изменить пароль пользователя, и каталог Загрузки.

continue daemon=true dir=/home/aria2/Downloads file-allocation=falloc log-level=warn max-connection-per-server=4 max-concurrent-downloads=3 max-overall-download-limit=0 min-split-size=5M enable-http-pipelining=true enable-rpc=true rpc-listen-all=true rpc-user=rpcuser rpc-passwd=rpcpass

Интерфейс

Примечание: Настройки осуществляемые во фронтэндах не влияют на собственные настройки aria2 , и неясно, повторяют ли различные интерфейсы настройку aria2 , если обычная была сделана. Пользователи должны гарантировать, что их желаемые параметры эффективно реализуется в рамках отдельных утилит, и что они хранятся постоянно (Uget, например, имеет командную строку своего собственного aria2 , который сохраняется после перезагрузки)

Веб-интерфейсы

Примечание: Для работы этих фронтэндов, aria2c нужно запускать с —enable-rpc . Они предназначены для работы на локальном компьютере, а не на удаленном сервере, используя aria для загрузок.

  • Webui — Html фронтэнд для aria2.
  • aria2rpc — Инструмент командной строки для подключения к удаленному экземпляру aria2c . Если aria2c установлена его можно найти в /usr/share/doc/aria2/xmlrpc/aria2rpc .

Другие интерфейсы

Примечание: Эти фронтэнды не нужны aria2c для запуска с функцией —enable-rpc .

  • aria2fe — Графический интерфейс CLI-based утилиты загрузок aria2.
  • Diana — Инструмент командной строки для aria2
  • uGet — Многофункциональный, многопоточный, с поддержкой докачки GTK+/CLI менеджер загрузок, который может использовать aria2 как бэкэнд, встроенный плагин.

Советы и рекомендации

Скачать пакеты без установки

Просто воспользуйтесь командой, приведенной ниже:

# pacman -Sp packages | aria2c -i -

pacman -Sp покажет список адресов пакетов в стандартном выводе (stdout) вместо того, чтобы загрузить, затем | передаст их для следующей команды. И, наконец -i в aria2c -i — скажет aria2c, что URL-адреса для скачиваемых файлов должны быть считаны из указанного файла, но так как добавлен — , значит URL-адреса нужно брать из стандартного ввода (stdin).

pacman XferCommand

Изменение User Agent

Некоторые сайты могут фильтровать запросы на основе вашего User Agent, поскольку Aria2 малоизвестный загрузчик, может оказаться полезным изменить User Agent, представляясь известным загрузчиком или браузером. Просто используйте опцию -U, как здесь:

$ aria2c -UWget http://some-url-to-download/file.xyz

Вы можете использовать все, что пожелаете, например -UMozilla/5.0 и т.д.

Использование Aria2 с makepkg

Вы можете использовать Aria2 (Русский) вместо curl для скачивания файлов-исходников, просто измените переменную DLAGENTS следующим образом:

/etc/makepkg.conf
[. ] DLAGENTS=('ftp::/usr/bin/aria2c -UWget -s4 %u -o %o' 'http::/usr/bin/aria2c -UWget -s4 %u -o %o' 'https::/usr/bin/aria2c -UWget -s4 %u -o %o' 'rsync::/usr/bin/rsync --no-motd -z %u %o' 'scp::/usr/bin/scp -C %u %o') [. ]

Примечание: Используйте параметр -UWget для изменения пользовательского агента на Wget. Это может предотвратить проблемы при загрузке с сайтов, которые фильтрует запросы, основанные на агенте пользователя (user agent), чтобы избежать проблемы доступа к URL-адресу. Поскольку Aria2 малоизвестный загрузчик, он может быть ошибочно распознан как браузер. Изменение пользовательского агента на Wget может решить большинство проблем.

Смотрите также

  • Руководство — Официальное руководство aria2 на Русском
  • Примеры использования — официальный сайт

Retrieved from «https://wiki.archlinux.org/index.php?title=Aria2_(Русский)&oldid=791391»

  • Download utilities (Русский)
  • BitTorrent (Русский)

aria2c(1)¶

aria2 — это утилита для загрузки файлов. Поддерживаемые протоколы: HTTP(S), FTP, SFTP, BitTorrent и Metalink. aria2 может загрузить файл с разных источников/протоколов и пытается максимально использовать пропускную способность канала. Есть поддержка загрузки файла по протоколам HTTP(S)/FTP/SFTP и BitTorrent одновременно, пока данные загружаются по HTTP(S)/FTP, они тут же могут выгружаться в BitTorrent-рой. Используя контрольные суммы блока данных для Metalink, aria2 автоматически проверяет части данных во время загрузки файла.

ПАРАМЕТРЫ¶

Большинство связанных с FTP параметров применимы также к SFTP. Некоторые параметры не являются эффективными по отношению к SFTP (например, —ftp-pasv )

Основные параметры¶

Каталог для сохранения загруженных файлов.

Загрузить URI, перечисленные в файле FILE. Вы можете указать различные источники для одного объекта, перечислив различные URI в строке, разделенных символом TAB (табуляция). Дополнительные параметры можно указывать после каждой URI-строки. Cтроки параметров должны начинаться с одного или нескольких пробелов ( SPACE или TAB ) и содержать один параметр на строку. Когда FILE указан как — , aria2 будет считывать ввод из stdin (стандартный поток ввода). Входной файл может использовать gzip-сжатие. Смотрите подраздел Входной файл для детальных пояснений. Также смотрите параметр —deferred-input . Также смотрите параметр —save-session .

Имя файла для журнала событий. Если указан — , то журнал событий будет записан в stdout (стандартный поток вывода). Если указана пустая строка («») или параметр пропущен, то журнал событий вообще не будет записан на диск.

Задать максимальное количество параллельных загрузок для каждого элемента очереди. Смотрите также параметр —split . По умолчанию: 5

—max-concurrent-downloads ограничивает количество элементов, которые загружаются одновременно. —split и —min-split-size влияет на количество соединений внутри каждого элемента. Допустим у вас есть такой входной файл (см. параметр —input-file ):

http://example.com/foo http://example.com/bar

Здесь 2 загружаемых элемента. aria2 может загрузить эти элементы одновременно, если значение, заданное в —max-concurrent-downloads , больше или равно 2. В каждом загружаемом элементе, вы можете задать количество соединений, используя —split и/или —min-split-size .

-V , —check-integrity [true|false] ¶

Проверить целостность файла путем подтверждения хэшей блоков или хэша полного файла. Этот параметр влияет лишь на BitTorrent, Metalink или HTTP(S)/FTP загрузки с параметром —checksum . Параметр может обнаружить поврежденные части файла и перезагрузить их. Если есть хэш полного файла, то проверка выполняется только, когда файл уже полностью загружен. Момент полной загрузки определяется по размеру файла. Если проверка хэша завершилась неудачно, то файл будет перезагружен с нуля. Если есть хэши блоков и хэш полного файла, то будут использоваться только хэши блоков. По умолчанию: false

-c , —continue [true|false] ¶

Продолжить загрузку частично загруженного файла. Используйте этот параметр, чтобы возобновить загрузку, начатую в веб-браузере или в другой программе, которая загружает файлы последовательно сначала. Сейчас этот параметр можно использовать только для HTTP(S)/FTP-загрузок. По умолчанию: false

Справочное сообщение определяется метками (TAG). Метки начинаются с # . Например, —help=#http даст справку по параметрам, помеченным меткой #http . Если задано слово (KEYWORD), не являющееся меткой, то будет выведена справка по параметрам, содержащих это слово. Возможные значения: #basic , #advanced , #http , #https , #ftp , #metalink , #bittorrent , #cookie , #hook , #file , #rpc , #checksum , #experimental , #deprecated , #help , #all . По умолчанию: #basic

Параметры HTTP/FTP/SFTP¶

Использовать указанный прокси-сервер для всех протоколов. Для отмены ранее определенного адреса используйте «». Вы также можете отменить эту настройку и указать прокси-сервер для отдельного протокола, используя параметры —http-proxy , —https-proxy и —ftp-proxy . Влияет на все загрузки. Формат PROXY — [http://][ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ@]ХОСТ[:ПОРТ] . Смотрите также раздел ОКРУЖЕНИЕ.

Если пользователь и пароль вставлены в URI-прокси и они также указаны в параметрах —proxy- , то те, которые указаны позже переопределят предыдущие параметры. Например, если вы указали http-proxy-user=»myname» , http-proxy-passwd=»mypass» в aria2.conf и указали —http-proxy=»http://proxy» в командной строке, тогда вы получите HTTP-прокси http://proxy с пользователем myname и паролем mypass .

Другой пример: если вы указали в командной строке —http-proxy=»http://user:pass@proxy» —http-proxy-user=»myname» —http-proxy-passwd=»mypass» , тогда вы получите HTTP-прокси http://proxy с пользователем myname и паролем mypass .

Еще один пример: если вы указали в командной строке —http-proxy-user=»myname» —http-proxy-passwd=»mypass» —http-proxy=»http://user:pass@proxy» , тогда вы получите HTTP-прокси http://proxy с пользователем user и паролем pass .

—all-proxy-passwd =

Задать пароль для параметра —all-proxy .

Задать пользователя для параметра —all-proxy .

Задать контрольную сумму. TYPE — тип хэша. Поддерживаемые типы хэшей перечислены в Алгоритмы хэширования при aria2c -v . DIGEST — шестнадцатеричное значение хэша. Например, указание значения sha-1 хэша выглядит так: sha-1=0192ba11326fe2298c8cb4de616f4d4140213838 Этот параметр применим только к HTTP(S)/FTP загрузкам.

Задать в соединении время ожидания в секундах для установки подключения к HTTP/FTP/прокси-серверу. После установки подключения этот параметр не имеет значения, и вместо него используется параметр —timeout . По умолчанию: 60

Если задано true , aria2 только проверяет, является ли удаленный файл доступным и не загружает данные. Этот параметр влияет на HTTP/FTP-загрузку. BitTorrent-загрузки отменяются, если указано true . По умолчанию: false

Закрывать соединение, если скорость загрузки меньше чем или равна значению SPEED (байт в секунду). 0 означает, что aria2 не имеет нижнего ограничения скорости. Вы можете добавить K или M (1K = 1024, 1M = 1024K). Этот параметр не влияет на BitTorrent-загрузки. По умолчанию: 0

Максимально количество соединений с одним сервером для каждой загрузки. По умолчанию: 1

Если aria2 получает статус «file not found» (файл не найден) с удаленных HTTP/FTP-серверов NUM раз без получения, хотя бы одного байта, тогда принудительно отказывается от загрузки. Укажите 0 , чтобы отключить этот параметр. Этот параметр действенен только, когда используются HTTP/FTP-серверы. Количество повторных попыток засчитывается в —max-tries , таким образом, этот параметр также должен быть сконфигурирован.

Задать количество попыток. 0 означает неограниченно. Смотрите также —retry-wait . По умолчанию: 5

aria2 не разбивает на части меньше чем 2*SIZE байт. Например, нужно загрузить файл размером 20МиБ. Если SIZE задать 10M, то aria2 может разбить файл на части в 2-ух диапазонах [0-10МиБ) и [10МиБ-20МиБ) и загрузить его, используя 2 источника (если —split >= 2, конечно же). Если SIZE задать 15M, т.к. 2*15M > 20MiB, aria2 не разобьет файл на части и загрузит его, используя 1 источник. Вы можете добавить K или M (1K = 1024, 1M = 1024K). Возможные значения: 1M — 1024M . По умолчанию: 20M

Указать путь к файлу .netrc. По умолчанию: $(HOME)/.netrc

Права доступа к файлу .netrc должны быть равны 600. Иначе, файл будет проигнорирован.

-n , —no-netrc [true|false] ¶

Отключить поддержку netrc. Поддержка netrc по умолчанию включена.

Файл netrc считывается только при запуске, если —no-netrc задан как false . Так что если —no-netrc задан как true при загрузке, то netrc недоступен на протяжении всей сессии. Вы не сможете получить доступ к netrc, даже если отправите —no-netrc=false, используя aria2.changeGlobalOption() .

Укажите через запятую список имён хостов, доменов и сетевых адресов с или без маски подсети, для которых не будет использоваться прокси.

IPv4- и IPv6-адресация работает для сетевых адресов с маской подсети. Текущая реализация не разрешает имена хостов в URI для сравнения сетевых адресов указанных в —no-proxy . Таким образом, это эффективно, только если в URI есть IP-адреса.

Сохранить загруженный файл под указанным именем, относительно каталога, заданного в параметре —dir . Данный параметр игнорируется, когда используется параметр —force-sequential .

Вы не можете указать имя файла для Metalink или BitTorrent загрузок. Имя файла указанное здесь, используется только когда URI передаются aria2 с командной строкой непосредственно, но не при использовании параметров —input-file , —force-sequential .

$ aria2c -o myfile.zip "http://mirror1/file.zip" "http://mirror2/file.zip" 

—proxy-method =

Задать метод для использования в прокси-запросах. METHOD один из двух: get или tunnel . HTTPS-загрузки всегда используют tunnel , не обращая внимания на этот параметр. По умолчанию: get

-R , —remote-time [true|false] ¶

Извлекать временную метку файла с удаленного HTTP/FTP-сервера и, если это доступно, применить ее к локальному файлу. По умолчанию: false

Повторно использовать уже использованные URI, если не осталось неиспользованных URI. По умолчанию: true

Задать в секундах интервал ожидания между повторными попытками. При SEC > 0` , если HTTP-сервер возвращает ответ 503, aria2 будет снова пытаться загрузить. По умолчанию: 0

Указать имя файла, в который сохраняется профиль функционирования сервера. Вы можете загрузить сохраненные данные, используя параметр —server-stat-if . Формат файла смотрите ниже в подразделе Профиль функционирования сервера.

Указать имя файла для загрузки профиля функционирования сервера. Загруженные данные будут использованы в некоторых URI селекторах, таких как feedback . Смотрите также параметр —uri-selector . Формат файла смотрите ниже в подразделе Профиль функционирования сервера.

Указывает время ожидания в секундах, для того, чтобы сделать недействительным профиль функционирования сервера, с тех пор, как состоялся последний контакт с ним. По умолчанию: 86400 (24 часа)

Загружать файл, используя N соединений. Если задано более чем N URI, будут использоваться первые N URI, а оставшиеся URI будут в резерве. Если задано менее чем N URI, то URI будут использованы более одного раза, так чтобы были задействованы все N соединений одновременно. Количество соединений к одному и тому же хосту ограничивается параметром —max-connection-per-server . Смотрите также параметр —min-split-size . По умолчанию: 5

Некоторые Metalink регламентируют количество серверов для соединения. aria2 строго соблюдает это. Это значит, что если Metalink определяет атрибут maxconnections меньше чем N, то aria2 использует это, более низкое значение, вместо N.

—stream-piece-selector =

Указать алгоритм выбора блока, который используется в HTTP/FTP-загрузке. Блок — означает сегмент фиксированной длины, который загружается параллельно, в разделенной на части, загрузке. Если задано default , то aria2 выберет блок так, чтобы это уменьшило количество установленных подключений. Это разумное поведение по умолчанию, поскольку установка подключения очень затратная операция. Если задано inorder , то aria2 выберет блок, который имеет минимальный индекс. Index=0 означает первый из файла. Это будет полезно при просмотре фильма, в то время как он загружается. Параметр —enable-http-pipelining может быть полезен для снижения накладных расходов при повторном подключении. Обратите внимание, что aria2 принимает на обработку параметр —min-split-size , так что необходимо будет указать разумное значение параметра —min-split-size . Если задано random , то aria2 выбирает блоки случайно. Как и при inorder учитывается параметр —min-split-size . Если задано geom , то aria2 вначале выберет блок с минимальным индексом, как при inorder , однако она сохранит экспоненциально большую область от ранее выбранного блока. Это уменьшит количество установленных подключений и в то же время это позволит в первую очередь загрузить начало файла. Это будет полезно при просмотре фильма, в то время как он загружается. По умолчанию: default

Задать время ожидания в секундах. По умолчанию: 60

Указать алгоритм выбора URI. Возможные значения: inorder , feedback и adaptive . Если задано inorder , то URI проверяются в порядке представления в списке URI. Если задано feedback , aria2 использует скорость загрузки, которая наблюдалась в предыдущих загрузках, и выбирает самый быстрый сервер в списке URI. Это также эффективно исключает мертвые зеркала. Наблюдаемая скорость загрузки является частью профиля функционирования сервера, упомянутой в параметрах —server-stat-of и —server-stat-if . Если задано adaptive , выбирается одно из лучших зеркал для первого и резервного соединений. Дополнительно, возвращаются зеркала, которые пока не были проверены, и, если каждое из них уже проверено, возвращаются зеркала, которые должны быть проверены снова. Иначе зеркала больше не выбираются. Подобно feedback , используются профиль функционирования сервера. По умолчанию: feedback

Специфические параметры HTTP¶

—ca-certificate =

Использовать для проверки узлов FILE с сертификатами удостоверяющих центров. FILE должен быть в PEM-формате и может содержать несколько CA-сертификатов. Используйте параметр —check-certificate , чтобы включить проверку.

Если вы при сборке используете OpenSSL или последнею версию GnuTLS, в которой есть функция gnutls_certificate_set_x509_system_trust() , и библиотека правильно настроена, чтобы найти хранилище общесистемных CA-сертификатов, то aria2 автоматически загрузит эти сертификаты при старте.

WinTLS и AppleTLS не поддерживают этот параметр. Вместо этого вам придется импортировать сертификат в хранилище доверенных сертификатов ОС.

—certificate =

Использовать клиентский сертификат в FILE. Сертификат должен быть один из двух: PKCS12 (.p12, .pfx) или в PEM-формате.

PKCS12-файлы должны содержать сертификат, ключ и, необязательно, цепочку дополнительных сертификатов. Могут быть открыты PKCS12-файлы только с пустым импортированным паролем!

При использовании PEM, вы также должны указать закрытый ключ через —private-key ,

WinTLS не поддерживает PEM-файлы в данный момент. Пользователи должны использовать PKCS12-файлы.

AppleTLS пользователи должны использовать утилиту KeyChain Access для импорта сертификата клиента и получения соответствующего SHA-1 отпечатка этого сертификата из окна Information. Для запуска aria2c используйте —certificate= . Альтернативные PKCS12-файлы также поддерживаются. PEM-файлы, однако, не поддерживаются.

—check-certificate [true|false] ¶

Проверять узел, используя сертификаты, которые указаны в параметре —ca-certificate . По умолчанию: true

Посылать Accept: deflate, gzip в запросе-заголовке и добавлять в ответ, если удаленный сервер ответит Content-Encoding: gzip или Content-Encoding: deflate . По умолчанию: ‘false

Некоторые серверы отвечают Content-Encoding: gzip для файлов, которые сами по себе сжаты (gzipped). aria2 добавляет их, так или иначе, из-за заголовка ответа.

—http-auth-challenge [true|false] ¶

Отправлять заголовок HTTP-авторизации только тогда, когда он запрошен с сервера. Если задано false , тогда заголовок авторизации всегда отправляется на сервер. Существует исключение: если имя пользователя и пароль являются встроенными в URI, то заголовок авторизации всегда отправляется на сервер, независимо от этого параметра. По умолчанию: false

Отправлять заголовок Cache-Control: no-cache и Pragma: no-cache , чтобы избежать кэширования содержимого. Если задано false , то эти заголовки не посылаются, и вы можете добавить любую директиву к заголовку Cache-Control с помощью параметра —header . По умолчанию: false

Задать пользователя для HTTP. Влияет на все URI.

Задать пароль для HTTP. Влияет на все URI.

Использовать указанный прокси-сервер для HTTP. Для отмены ранее определенного адреса используйте «». Смотрите также параметр —all-proxy . Влияет на все HTTP-загрузки. Формат PROXY — [http://][ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ@]ХОСТ[:ПОРТ] .

Задать пользователя для —http-proxy .

Использовать указанный прокси-сервер для HTTPS. Для отмены ранее определенного адреса используйте «». Смотрите также параметр —all-proxy . Влияет на все HTTPS-загрузки. Формат PROXY — [http://][ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ@]ХОСТ[:ПОРТ] .

Задать пользователя для —https-proxy .

Использовать закрытый ключ в FILE. Закрытый ключ должен быть дешифрованным и в PEM-формате. Режим работы, с исходно зашифрованным закрытым ключом, не определён. Смотрите также параметр —certificate .

Задать HTTP источник запроса (Referer). Влияет на все HTTP/HTTPS-загрузки. Если задано * , то URI загрузки будет также использован как источник запроса. Это может быть полезно при использовании вместе с параметром —parameterized-uri .

Включить HTTP/1.1 постоянное соединение. По умолчанию: true

Включить конвейерную обработку HTTP/1.1. По умолчанию: false

С точки зрения производительности, как правило, нет преимущества от включения этого параметра.

Добавлять HEADER к HTTP запросу-заголовку. Вы можете использовать этот параметр повторно, чтоб указать более одного заголовка:

$ aria2c --header="X-A: b78" --header="X-B: 9J1" "http://host/file" 

—load-cookies =

Загружать куки-файл из FILE, используя форматы Firefox3 (SQLite3), Chromium/Google Chrome (SQLite3) и Mozilla/Firefox(1.x/2.x)/Netscape.

Если aria2 собрана без libsqlite3, то форматы куки-файлов Firefox3 и Chromium/Google Chrome не поддерживаются.

—save-cookies =

Сохранить куки в FILE формате Mozilla/Firefox(1.x/2.x)/Netscape. Если FILE уже существует, то он будет перезаписан. Куки-сессия также сохранится, и значение ее окончания будет трактоваться как 0. Возможные значения: /путь/к/файлу

Использовать метод HEAD для первого запроса к HTTP серверу. По умолчанию: false

Задать клиентское приложение для HTTP(S)-загрузок. По умолчанию: aria2/$VERSION , $VERSION заменяется на версию пакета.

Специфические параметры FTP/SFTP¶

Задать пользователя для FTP. Влияет на все URI. По умолчанию: anonymous

Задать пароль для FTP. Влияет на все URI. Если имя пользователя встроено, но пароль отсутствует в URI, то aria2 пытается использовать пароль из .netrc. Если пароль найден в .netrc, то он используется. Если нет, используется пароль, указанный в этом параметре. По умолчанию: ARIA2USER@

-p , —ftp-pasv [true|false] ¶

Использовать пассивный режим FTP. Если задано false , то будет использован активный режим. По умолчанию: true

Этот параметр игнорируется для SFTP-передачи.

Использовать указанный прокси-сервер для FTP. Для отмены ранее определенного адреса используйте «». Смотрите также параметр —all-proxy . Влияет на все FTP-загрузки. Формат PROXY — [http://][ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ@]ХОСТ[:ПОРТ]

Задать пароль для параметра —ftp-proxy .

Задать пользователя для параметра —ftp-proxy .

Задать тип передачи для FTP. TYPE может быть один из двух: binary или ascii . По умолчанию: binary

Этот параметр игнорируется для SFTP-передачи.

—ftp-reuse-connection [true|false] ¶

Повторно использовать FTP соединение. По умолчанию: true

Задать контрольную сумму для публичного SSH-ключа хоста. TYPE — тип хэша. Поддерживаемые типы хэшей — sha-1 или md5 . DIGEST — шестнадцатеричное значение хэша. Например: sha-1=b030503d4de4539dc7885e6f0f5e256704edf4c3 . Этот параметр может быть использован для проверки публичного ключа сервера при использовании SFTP. Если параметр не задан (по умолчанию), то никакой проверки не происходит.

Параметры BitTorrent/Metalink¶

—select-file =. ¶

Задать файл для загрузки по заданному индексу. Вы можете найти индекс файла, используя параметр —show-files . Составной индекс можно указать, используя , , например: 3,6 . Вы можете также использовать — , чтобы указать диапазон: 1-5 . , и — могут быть использованы вместе: 1-5,8,9 . Когда используется с параметром -M, индекс может сильно зависеть от запроса (смотрите параметры —metalink-*).

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

-S , —show-files [true|false] ¶

Вывести список файлов из «.torrent», «.meta4» или «.metalink» и завершить работу. Для файла .torrent будет выведена более детальная информация (информация по хэшу, размер блока и др.).

Специфические параметры BitTorrent¶

—bt-detach-seed-only [true|false] ¶

Исключить только раздачи при подсчёте одновременных активных загрузок (смотрите параметр -j ). Это значит, что если задано -j3 и этот параметр включён, активны 3 загрузки и одна из них переходит в режим сидирования (раздачи), то она исключается из количества активных загрузок (таким образом их становится 2), и следующая ожидающая в очереди загрузка стартует. Но знайте, что в RPC-методе сидирующий элемент всё ещё признаётся как активная загрузка. По умолчанию: false

Позволяет перехватить команду вызова (управление) после проверки хэша (см. параметр -V ) в BitTorrent-загрузке. По умолчанию, когда проверка хэша завершилась удачно, выполняется команда заданная в —on-bt-download-complete . Укажите для этого параметра false , чтобы отключить это действие. По умолчанию: true

Включить поиск локальных пиров. Если в torrent-файле установлен приватный признак, то aria2 не будет использовать эту возможность, даже если задано true . По умолчанию: false

Разделенный запятыми список URI анонса BitTorrent-трекера, которые будут исключены. Вы можете использовать специальное значение * , которое соответствует всем URI, таким образом, исключаются все URI анонса. При указании * в командной оболочке, не забывайте, экранировать или брать в кавычки. Смотрите также параметр —bt-tracker .

Указать внешний IP-адрес для использования в BitTorrent-загрузке и DHT. Он может быть отправлен BitTorrent-трекеру. Для DHT, этот параметр должен быть задан, чтобы сообщить, что локальный узел загружает конкретный торрент. Это критически важно, чтобы использовать DHT в частной сети. Несмотря на то, что эта функция названа external ( внешний ), она может принимать любой IP-адрес.

Требовать шифрование при помощи arc4 полезной нагрузки BitTorrent-сообщения. Это сокращение —bt-require-crypto —bt-min-crypto-level =arc4. Этот параметр не изменяет значения тех параметров. Если задано true , то отвергается традиционное BitTorrent-рукопожатие (handshake), а используется только обфускация рукопожатия (handshake) и всегда шифруется полезная нагрузка. По умолчанию: false

Если задано true , то после проверки хэша с использованием параметра —check-integrity , и когда файл загружен полностью, продолжается раздача файла. Если вы хотите проверить файл и загрузить его только если он поврежден или не загружен полностью, то задайте этот параметр как false . Этот параметр влияет лишь на BitTorrent-загрузки. По умолчанию: true

Прежде, чем получить метаданные торрента из DHT при загрузке magnet-ссылки, сначала попытаться считать файл, сохранённый параметром —bt-save-metadata . Если попытка успешна, то пропустить загрузку метаданных из DHT. По умолчанию: false

Использовать для поиска локальных пиров заданный интерфейс. Если этот параметр не указан, используется интерфейс по умолчанию. Можно указать имя интерфейса и IP-адрес. Возможные значения: интерфейс, IP-адрес.

Указать глобально максимальное количество файлов для открытия в многофайловой BitTorrent/Metalink-загрузке. По умолчанию: 100

Указать максимальное количество узлов для каждого торрента. 0 означает неограниченно. Смотрите также параметр —bt-request-peer-speed-limit . По умолчанию: 55

Загрузить только метаданные. Файл(ы), описывающий метаданные не должен быть загружен. Этот параметр эффективен, только если используется BitTorrent Magnet-ссылка. Смотрите также параметр —bt-save-metadata . По умолчанию: false

Задать минимальный уровень метода шифрования. Если узел поддерживает несколько методов шифрования, aria2 выбирает наименьший, который удовлетворяет заданный уровень. По умолчанию: plain

Пытаться загрузить сначала первую и последнюю части каждого файла. Это бывает полезно для предварительного просмотра файлов. Аргумент может содержать 2 ключевых слова: head и tail . Для включения обоих, необходимо разделить их запятой. Ключевые слова принимают один параметр, SIZE. Например, если указано head= , части, в пределах первых SIZE байт каждого файла, получат повышенный приоритет. tail= обозначает диапазон из последних SIZE байт каждого файла. SIZE может включать букву K или M для обозначения размера в килобайтах или мегабайтах, соответственно (1K = 1024, 1M = 1024K). Если SIZE пропущено, то будет использовано по умолчанию значение: SIZE=1M.

Удалить невыбранные файлы, когда завершена загрузка в BitTorrent. Чтобы выбрать файлы, используйте параметр —select-file . Если не использовался этот параметр, то предполагается, что все файлы выбраны. Пожалуйста, используйте этот параметр внимательно, так как это фактически удалит файлы с вашего диска. По умолчанию: false

Если задано true , aria2 не принимает и не устанавливает соединение с традиционным BitTorrent-рукопожатием (handshake) (\19BitTorrent протокол). Таким образом, aria2 всегда использует обфускацию handshake-сообщения. По умолчанию: false

Если итоговая скорость загрузки каждого торрента, ниже чем SPEED, aria2 временно увеличивает количество узлов, пытаясь увеличить скорость загрузки. Настройка этого параметра с выбранной вами скоростью загрузки может, в некоторых случаях, увеличить вашу скорость загрузки. Вы можете добавить K или M (1K = 1024, 1M = 1024K). По умолчанию: 50K

Сохранить метаданные как файл «.torrent». Этот параметр эффективен только если используется BitTorrent Magnet-ссылка. Имя файла шестнадцатеричное представление хэша с расширением «.torrent». Файл сохранится в каталог, в тот же самый, куда сохранится загружаемый файл. Если тот же самый файл уже существует, метаданные не сохранятся. Смотрите также параметр —bt-metadata-only . По умолчанию: false

Раздавать первоначально загруженные файлы без проверки хэшей блоков. По умолчанию: false

Остановить BitTorrent загрузку, если скорость загрузки равна 0 на протяжении SEC секунд. Если задано 0 , то эта возможность не будет использоваться. По умолчанию: 0

Разделенный запятыми список дополнительных URI анонса BitTorrent-трекеров. На эти URI не действует параметр —bt-exclude-tracker , потому что они добавляются после URI, указанных в параметре —bt-exclude-tracker , которые исключаются.

Задать время ожидания в секундах для установки соединения с трекером. После установки соединения, это параметр станет недействительным, а вместо него будет использован —bt-tracker-timeout . По умолчанию: 60

Задать интервал в секундах между запросами трекера. Это полностью отменяет значение интервала и aria2 использует только это значение и игнорирует минимальный интервал и значение интервала в ответе трекера. Если задан 0 , aria2 определяет интервал, основываясь на ответе трекера и прогрессе загрузки. По умолчанию: 0

Задать время ожидания в секундах. По умолчанию: 60

Задать хост и порт, как точку входа в IPv4 DHT сеть.

Задать хост и порт, как точку входа в IPv6 DHT сеть.

Сменить путь к файлу таблицы маршрутизации IPv4 DHT на PATH. По умолчанию: $HOME/.aria2/dht.dat если существует, иначе $XDG_CACHE_HOME/aria2/dht.dat .

Сменить путь к файлу таблицы маршрутизации IPv6 DHT на PATH. По умолчанию: $HOME/.aria2/dht6.dat если существует, иначе $XDG_CACHE_HOME/aria2/dht6.dat .

Указать адрес привязки сокета для IPv6 DHT. Он должен быть глобальным IPv6 unicast-адресом хоста.

Задать прослушиваемый UDP-порт используя DHT (IPv4, IPv6) и UDP-трекер. Несколько портов можно указать через , , например: 6881,6885 . Вы также можете использовать — чтобы указать диапазон: 6881-6999 . , и — могут быть использованы вместе. По умолчанию: 6881-6999

Удостоверьтесь, что указанные порты открыты для входящего UDP-трафика.

—dht-message-timeout =

Задать время ожидания в секундах. По умолчанию: 10

Включить функцию IPv4 DHT. Это также включает поддержку UDP-трекера. Если в torrent-файле задан приватный признак, aria2 не будет использовать DHT для загрузки, даже если установлен true . По умолчанию: true

Включить IPv6 DHT функциональность. Если в torrent-файле задан приватный признак, aria2 не будет использовать DHT для загрузки, даже если установлен true . Используйте параметр —dht-listen-port для указания прослушиваемого порта. Смотрите также параметр —dht-listen-addr6 .

Включить расширение BitTorrent-протокола для обмена списками участников. Если в torrent-файле задан приватный признак, то эта возможность будет отключена, даже если установлен true . По умолчанию: true

Если указать true или mem , тогда загруженный файл, расширение которого — .torrent или mime-тип — application/x-bittorrent , aria2 анализирует как torrent-файл и загружает файлы, указанные в нем. Если указано mem , тогда torrent-файл не записывается на диск, а содержится в памяти. Если указано false , то файл .torrent будет загружен на диск, но не будет проанализирован как торрент и его содержимое не будет загружено. По умолчанию: true

Задать путь к файлу PATH с индексом INDEX. Вы можете найти индекс файла, используя параметр —show-files . PATH является относительным путем к тому, который указан в параметре —dir . Вы можете использовать этот параметр много раз. Используйте этот параметр, когда хотите указать имена выходных файлов для BitTorrent-загрузок.

Задать номер TCP-порта для BitTorrent-загрузок. Несколько портов можно указать, используя , , например: 6881,6885 . Вы также можете использовать — , чтобы указать диапазон: 6881-6999 . , и — могут быть использованы вместе: 6881-6889,6999 . По умолчанию: 6881-6999

Удостоверьтесь, что указанные порты открыты для входящего TCP-трафика.

—max-overall-upload-limit =

Задать максимальную общую скорость отдачи в байтах/сек. 0 значит неограниченно. Вы можете добавить K или M (1K = 1024, 1M = 1024K). Чтобы ограничить скорость отдачи для узла торрента, используйте параметр —max-upload-limit . По умолчанию: 0

Задать максимальную скорость отдачи каждого узла торрента в байтах/сек. 0 значит неограниченно. Вы можете добавить K или M (1K = 1024, 1M = 1024K). Чтобы ограничить общую скорость отдачи, используйте параметр —max-overall-upload-limit . По умолчанию: 0

Указать префикс для ID узла. ID узла в BitTorrent имеет размер 20 байт. Если будет указано более 20 байт, то только первые 20 будут использоваться, если будет указано меньше 20, то они будут дополнены случайными данными до 20 байт.

По умолчанию: A2-$MAJOR-$MINOR-$PATCH- , $MAJOR, $MINOR и $PATCH заменяется на номер версии значительный, незначительный и патч соответственно. Например, версия aria2 1.18.8 имеет ID-префикс A2-1-18-8- .

Указать строку, содержащую клиентскую версию пира, которая используется во время расширенного bitorrent-рукопожатия (extended handshake).

По умолчанию: aria2/$MAJOR.$MINOR.$PATCH , $MAJOR, $MINOR и $PATCH заменяется на номер версии значительный, незначительный и патч соответственно. Например, версия aria2 1.18.8 имеет ID-префикс aria2/1.18.8 .

Указать рейтинг. Сидировать завершенные торренты, пока рейтинг не станет больше RATIO. Очень рекомендуется указать тут равный или больший 1.0 . Указать 0.0 , если вы планируете сидировать независимо от рейтинга. Если указан параметр —seed-time вместе с этим параметром, сидирование закончится тогда, когда хотя бы одно условие будет удовлетворено. По умолчанию: 1.0

Указать время сидирования [раздачи] в (дробных) минутах. Смотрите также параметр —seed-ratio .

Указанный —seed-time=0 отключает сидирование после завершения загрузки.

-T , —torrent-file =

Путь к файлу «.torrent». Вы не обязаны использовать этот параметр, т.к. файл «.torrent» можно указать без —torrent-file .

Специфические параметры Metalink¶

—follow-metalink =true|false|mem ¶

Если указано true или mem и когда загруженный файл имеет расширение .meta4 или .metalink , или mime-тип application/metalink4+xml или application/metalink+xml , aria2 считает его metalink-файлом и загружает упомянутые в нем файлы. Если указано mem , то metalink-файл не сохраняется на диск, а просто хранится в памяти. Если указано false , то файл .metalink будет загружен на диск, но не будет проанализирован как metalink-файл и его содержимое не будет загружено. По умолчанию: true

Указать основной URI для разрешения относительных URI в элементе metalink:url и metalink:metaurl в metalink-файле, сохраненном на локальном диске. Если URI указывает на каталог, то URI должен заканчиваться на / .

Путь к файлу «.meta4» и «.metalink». Читает ввод из stdin , если в качестве имени файла указано — . Вы не обязаны использовать этот параметр, т.к. файлы .metalink можно указать без —metalink-file .

Язык файла для загрузки.

Местонахождение предпочитаемого сервера. Список, разделенный запятыми, допустимых местонахождений, например, jp,us .

Целевая операционная система файла для загрузки.

Версия файла для загрузки.

Указать предпочитаемый протокол. Возможные значения: http , https , ftp и none . Указать none для отключения этой возможности. По умолчанию: none

Если задано true , а в metalink-файле доступно несколько протоколов, то aria2 использует один из них. Используйте параметр —metalink-preferred-protocol , чтобы указать предпочитаемый протокол. По умолчанию: true

Параметры RPC¶

—enable-rpc [true|false] ¶

Включить JSON-RPC/XML-RPC-сервер. Настоятельно рекомендуется указать секретный маркер авторизации, используя параметр —rpc-secret . Смотрите также параметр —rpc-listen-port . По умолчанию: false

Приостановка загрузки после добавления. Этот параметр действенен только, когда задан —enable-rpc=true. По умолчанию: false

Приостановить загрузки, созданные в результате загрузки метаданных. Есть 3 типа метаданных загрузок в aria2: (1) загрузка .torrent-файла. (2) загрузка метаданных торрента, используя magnet-ссылку. (3) загрузка metalink-файла. Эти загрузки метаданных будут генерировать загрузки, используя их метаданные. Этот параметр приостанавливает эти последующие загрузки. Этот параметр действует только когда задано —enable-rpc=true . По умолчанию: false

Добавить заголовок Access-Control-Allow-Origin со значением * в RPC-ответе. По умолчанию: false

Использовать сертификат в FILE для RPC-сервера. Сертификат должен быть один из двух: PKCS12 (.p12, .pfx) или в PEM-формате.

PKCS12-файлы должны содержать сертификат, ключ и, необязательно, цепочку дополнительных сертификатов. Могут быть открыты PKCS12-файлы только с пустым импортированным паролем!

При использовании PEM, вы также указываете закрытый ключ через —rpc-private-key , Используйте параметр —rpc-secure для включения шифрования.

WinTLS не поддерживает PEM-файлы в данный момент. Пользователи должны использовать PKCS12-файлы.

AppleTLS пользователи должны использовать утилиту KeyСhain Access, чтобы сначала генерировать самоподписанный SSL-Server сертификат, например, используя мастер, и получить соответствующий SHA-1 отпечаток нового сертификата из окна Information. Для запуска aria2c с —rpc-secure используйте —rpc-certificate= . Альтернативные PKCS12-файлы также поддерживаются. PEM-файлы, однако, не поддерживаются.

—rpc-listen-all [true|false] ¶

Слушать входящие JSON-RPC/XML-RPC-запросы на всех сетевых интерфейсах. Если указано false , слушать только на локальном петлевом интерфейсе (loopback). По умолчанию: false

Указать номер порта, для прослушивания JSON-RPC/XML-RPC-сервером. Возможные значения: 1024 — 65535 . По умолчанию: 6800

Задать максимальный размер JSON-RPC/XML-RPC-запроса. Если aria2 выявит запрос с размером большим, чем SIZE байт, тогда соединение будет отклонено. По умолчанию: 2M

Задать JSON-RPC/XML-RPC пароль.

Параметр —rpc-passwd будет устаревшим в будущих версиях. Перейдите на использование параметра —rpc-secret как можно скорее.

—rpc-private-key =

Использовать закрытый ключ в FILE для RPC-сервера. Закрытый ключ должен быть дешифрованным и в PEM-формате. Используйте параметр —rpc-secure для включения шифрования. Смотрите также параметр —rpc-certificate .

Сохранить загруженные метаданные torrent или metalink в каталоге, заданном параметром —dir . Имя файла содержит шестнадцатеричную строку SHA-1-хэша метаданных плюс расширение. Для torrent расширение ‘.torrent’. Для metalink — это ‘.meta4’. Если параметр задан как false, то загрузки, добавленные с помощью aria2.addTorrent() или aria2.addMetalink() , не будут сохраняться при помощи параметра —save-session . По умолчанию: true

Задать секретный маркер RPC-авторизации. Читайте RPC-авторизация по секретному маркеру , чтобы узнать, как использовать значение этого параметра.

RPC-транспорт будет зашифрован с использованием SSL/TLS. RPC-клиенты должны использовать https-схему для доступа к серверу. Для WebSocket-клиента, использовать wss-схему. Используйте параметры —rpc-certificate и —rpc-private-key для указания сертификата севера и закрытого ключа.

Задать JSON-RPC/XML-RPC пользователя.

Параметр —rpc-user будет устаревшим в будущих версиях. Перейдите на использование параметра —rpc-secret как можно скорее.

Дополнительные параметры¶

—allow-overwrite [true|false] ¶

Повторно запустить загрузку с нуля, если соответствующий контрольный файл отсутствует. Смотрите также параметр —auto-file-renaming . По умолчанию: false

Если задано false , aria2 прерывает загрузку, когда длина блока отлична от той, которая находится в контрольном файле. Если задано true , вы можете продолжать, однако некоторый прогресс загрузки будет потерян. По умолчанию: false

Всегда возобновлять загрузку. Если задано true , aria2 всегда пытается возобновить загрузку и если это не возможно, прерывает ее. Если задано false , тогда для всех заданных URI не поддерживается возобновление загрузки, или aria2 столкнется с невозможностью возобновления загрузки URI N -ое количество раз (значение N указывается в параметре —max-resume-failure-tries , то aria2 будет загружать файл с нуля. Смотрите параметр —max-resume-failure-tries . По умолчанию: true

Включить асинхронный DNS. По умолчанию: true

Разделенный запятыми список адресов DNS-серверов, которые используют асинхронный DNS-преобразователь. Обычно асинхронный DNS-преобразователь читает адреса DNS-серверов из /etc/resolv.conf . Когда используется этот параметр, то используются DNS-серверы, указанные в параметре вместо указанных в /etc/resolv.conf . Вы можете указать оба IPv4 и IPv6 адреса. Этот параметр полезен, когда в системе нет /etc/resolv.conf и у пользователя нет прав на его создание.

Переименовать файл, если такой уже существует. Этот параметр работает только для HTTP(S)/FTP-загрузок. К имени файла, но перед расширением (если оно есть), будет добавлена точка и число от 1 до 9999. По умолчанию: true

Сохранять контрольный файл (*.aria2) каждые SEC секунд. Если задано 0 , тогда контрольный файл не сохраняется на протяжении загрузки. aria2 сохраняет контрольный файл тогда, когда останавливается, не смотря на значение. Возможные значения: от 0 до 600 . По умолчанию: 60

Загружать файл только когда локальный файл старше, чем удаленный. Эта функция работает только для HTTP(S)-загрузок. Это не работает, если размер файла указан в Metalink. Это также игнорирует заголовок Content-Disposition. Если контрольный файл существует, то этот параметр игнорируется. Эта функция использует заголовок If-Modified-Since, как условие для получения только нового файла. При получении времени модификации локального файла, используется указанное пользователем имя файла (см. параметр —out ) или часть имени файла в URI, если —out не указан. Для перезаписи существующего файла необходим параметр —allow-overwrite . По умолчанию: false

Сменить путь к файлу конфигурации на PATH. По умолчанию: $HOME/.aria2/aria2.conf если существует, иначе $XDG_CACHE_HOME/aria2/aria2.conf .

Задать уровень вывода событий на консоль. LEVEL может быть: debug , info , notice , warn или error . По умолчанию: notice

Обрабатывать строку в кавычках в заголовке Content-Disposition как UTF-8 вместо ISO-8859-1, например, параметр filename, но не расширенную версию filename*. По умолчанию: false

-D , —daemon [true|false] ¶

Запустить как демон (фоновый процесс). Текущий рабочий каталог будет заменен на / , а стандартный ввод, стандартный вывод, стандартный вывод ошибок будут перенаправлены на /dev/null . По умолчанию: false

Если задано true , aria2 при запуске не считывает все URI и параметры из файла, указанного в параметре —input-file , а считывает их позже отдельно, когда это нужно. Это может сократить использование памяти, если во входном файле содержится много URI для загрузки. Если задано false , aria2 при запуске считывает все URI и параметры. По умолчанию: false

параметр —deferred-input будет заблокирован, если используется вместе с —save-session .

—disable-ipv6 [true|false] ¶

Отключить IPv6. Это полезно, если вы используете поврежденный DNS и хотите избежать ужасно медленного поиска AAAA-записи. По умолчанию: false

Включить дисковый кэш. Если SIZE задать как 0 , то дисковый кэш будет отключён. Эта функция кэширует загруженных данных в памяти, которая растет до не более чем SIZE байт. Кэш-память создаётся для экземпляра aria2 и совместно используется всеми загрузками. Одним из преимуществ дискового кэша — это уменьшение дискового ввода/вывода, т.к. данные записываются большими блоками, и они распределяются через смещение в файле. Если задействована хэш-проверка и данные кэшируются в памяти, то мы не должны читать их с диска. SIZE может включать букву K или M (1K = 1024, 1M = 1024K). По умолчанию: 16M

Этот параметр изменяет формат сообщения Результаты загрузки . Если OPT задан как default , то отображается GID, статус, средняя скорость загрузки и путь/URI. Если загружается множество файлов, то отобразится путь/URI первого запрашиваемого файла, а остальные пропускаются. Если OPT задан как full , то отображается GID, статус, средняя скорость загрузки, процент прогресса и путь/URI. Процент прогресса и путь/URI отобразится для каждого запрашиваемого файла в отдельной строке. Если OPT задан как hide , то Результаты загрузки скрыты. По умолчанию: default

Задать значение DSCP в исходящих IP-пакетах BitTorrent-трафика для QoS. Этот параметр изменяет только DSCP-биты в поле ToS IP-пакетов, а не всё поле. Если вы берёте значения из /usr/include/netinet/ip.h, то делите их на 4 (иначе значения будут неверными, например, ваш класс CS1 превратится в CS4 ). Если берёте обычно используемые значения из RFC, документации сетевых производителей, Википедии или других источников, то используйте их как есть.

Задать мягкое (soft) ограничение для дескрипторов открытых файлов. Ограничение будет иметь эффект только, если:

  1. Операционная система поддерживает его (posix).
  2. Ограничение не превышает жёсткое (hard) ограничение.
  3. Указанное ограничение больше, чем текущее мягкое ограничение.

Это эквивалентно установке nofile через ulimit, за исключением того, оно никогда не будет уменьшать ограничение.

Этот параметр доступен только в системах, поддерживающих API rlimit.

Включить цветной вывод для терминала. По умолчанию: true

Отображение файлов в память. Этот параметр может не работать, если место под файл предварительно не выделено. Смотрите —file-allocation .

По умолчанию: false

Указать метод опроса событий. Возможные значения: epoll , kqueue , port , poll и select . Каждый метод epoll , kqueue , port и poll доступен, если система поддерживает его. epoll доступен в современных дистрибутивах Linux. kqueue доступен в различных *BSD-системах, включая Mac OS X. port доступен в Open Solaris. Значение по умолчанию может изменяться в зависимости от системы, которую вы используете.

Указать метод резервирования места для файла. none не происходит предварительное резервирование места для файла. prealloc — предварительное резервирование места для файла перед началом загрузки. Это может продолжаться некоторое время, в зависимости от размера файла. Если вы используете новые файловые системы, наподобие ext4 (с поддержкой экстентов), btrfs, xfs или NTFS (только MinGW-сборка) тогда лучше выбрать falloc . Так как они резервируют место под большие (на несколько Гигабайт) файлы почти мгновенно. Не используйте falloc вместе с традиционными файловыми системами, такими как ext3 и FAT32, потому что это будет продолжаться почти столько же времени, как и prealloc , а также полностью заблокирует aria2, пока не закончится резервирование места. falloc может быть недоступным, если ваша система не содержит функцию posix_fallocate(3). trunc использует системный вызов ftruncate(2) или специфичный для конкретной платформы эквивалент, чтобы усечь файл до указанной длины.

Возможные значения: none , prealloc , trunc , falloc По умолчанию: prealloc

Использование trunc , на вид, выделяет дисковое пространство очень быстро, но на самом деле устанавливается длина файла в метаданных файловой системы, а дисковое пространство вообще не выделяется. Это означает, что это не помогает избежать фрагментации.

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

—force-save [true|false] ¶

Сохранить загрузку с параметром —save-session , даже если загрузка будет завершена или удалена. В этих ситуациях параметр также сохраняет контрольный файл. Это может быть полезно, чтобы сохранить BitTorrent-сидирование, у которого будет распознано состояние как завершенное. По умолчанию: false

Сохранить загрузку с параметром —save-session , даже если файл не был найден на сервере. В этой ситуации параметр также сохраняет контрольный файл. По умолчанию: true

Задать GID вручную. aria2 идентифицирует каждую загрузку по ID, называемому GID. GID должен быть шестнадцатеричной строкой из 16 символов, таким образом разрешены [0-9a-fA-F], а начальные нули не должны быть пропущены. GID равный 0 зарезервирован и не должен быть использован. GID должен быть уникальным, иначе отобразится сообщение об ошибке и загрузка не добавится. Этот параметр полезен при восстановлении сохранённой сессии, используя параметр —save-session . Если этот параметр не использован, то новый GID будет сгенерирован aria2.

Если задано true , то после проверки хэша, используя параметр —check-integrity , загрузка прервётся, в любом случае загрузка завершится. По умолчанию: false

Выводить размеры и скорость в удобочитаемом формате (например, 1.2Ки, 3.4Ми) на консольный индикатор. По умолчанию: true

Привязать сокеты к заданному интерфейсу. Вы можете указать имя интерфейса, IP-адрес и имя хоста. Возможные значения: имя интерфейса (например, eth0), IP-адрес (например, 192.168.0.12), имя хоста (например, myhost).

Если интерфейс имеет несколько адресов, то настоятельно рекомендуется указать IP-адрес явно. Смотрите также —disable-ipv6 . Если ваша система не имеет getifaddrs(3), это параметр не принимает имя интерфейса.

—keep-unfinished-download-result [true|false] ¶

Сохранять результаты незавершённых загрузок, даже если превышено значение —max-download-result . Это полезно, если незавершённые загрузки должны сохраняться в файле сессии (см. параметр —save-session ). Пожалуйста, имейте в виду, что для сохранения не существует верхней границы для количества результатов незавершённых загрузок. Если это нежелательно, отключите эту опцию. По умолчанию: true

Задать максимальное количество результатов загрузок, которые находятся в памяти. Результаты загрузок — завершенные/ошибка/удаленные загрузки. Результаты загрузок хранятся FIFO очереди, в которой может хранится NUM результатов загрузок. Когда очередь заполнена и появляется новый результат загрузки, то старейший результат загрузки удаляется из начала очереди, а новый добавляется в конец. Указание большого числа в этом параметре может привести к высокому потреблению памяти после тысяч загрузок. Значение 0 отключит сохранение результата загрузки. Обратите внимание, что незавершённые загрузки хранятся в памяти независимо от этого значения параметра. См. параметр —keep-unfinished-download-result . По умолчанию: 1000

Задать максимальный размер файла для включения mmap (см. параметр —enable-mmap ). Размер файла определяется по сумме всех файлов, содержащихся в одной загрузке. Например, если загрузка содержит 5 файлов, то размер файла — это суммарный размер этих файлов. Если размер файла строго больше чем размер, указанный в этом параметре, то mmap будет отключён. По умолчанию: 9223372036854775807

Если параметр —always-resume=false, aria2 загрузит файл с нуля, при обнаружении N -го URI, не поддерживающего возобновление. Если N =«0«, то aria2 загрузит файл с нуля, когда все URI не поддерживают возобновление. Смотрите параметр —always-resume . По умолчанию: 0

Указать для использования минимальную версию SSL/TLS. Возможные значения: TLSv1.1 , TLSv1.2 , TLSv1.3 По умолчанию: TLSv1.2

Разделенный запятыми список интерфейсов для привязки сокетов. Запросы будут разделяться между интерфейсами для достижения объединения каналов. Вы можете указать имя интерфейса (например, eth0), IP-адрес (например, 192.168.0.12) и имя хоста (например, myhost). Если используется —interface , то этот параметр будет проигнорирован. Возможные значения: интерфейс, IP-адрес, имя хоста.

Задать уровень вывода журнала событий. LEVEL может быть: debug , info , notice , warn или error . По умолчанию: debug

Для BitTorrent, в —on-download-complete указывается команда, которая вызывается после завершение загрузки и окончания сидирования. С другой стороны, этот параметр определяет команду, которая будет выполнена после завершения загрузки, но до сидирования. Смотрите раздел Перехват сообщения для более подробной информации о COMMAND. Возможные значения: /путь/к/команде

Задать команду, которая будет выполнена после завершения загрузки. Смотрите раздел Перехват сообщения для более подробной информации о COMMAND. Смотрите также параметр —on-download-stop . Возможные значения: /путь/к/команде

Задать команду, которая будет выполнена после того, как загрузка будет прервана из-за ошибки. Смотрите раздел Перехват сообщения для более подробной информации о COMMAND. Смотрите также параметр —on-download-stop . Возможные значения: /путь/к/команде

Задать команду, которая будет выполнена после того, как загрузка будет приостановлена. Смотрите раздел Перехват сообщения для более подробной информации о COMMAND. Возможные значения: /путь/к/команде

Задать команду, которая будет выполнена после того, как началась загрузка. Смотрите раздел Перехват сообщения для более подробной информации о COMMAND. Возможные значения: /путь/к/команде

Задать команду, которая будет выполнена после того, как загрузка остановлена. Вы можете изменить команду, которая будет выполнятся при определенном результате загрузки, используя параметры —on-download-complete и —on-download-error . Если они указаны, то команда, определенная в этом параметре не будет выполнятся. Смотрите раздел Перехват сообщения для более подробной информации о COMMAND. Возможные значения: /путь/к/команде

Оптимизирует количество одновременных загрузок в соответствии с доступной полосой пропускания. aria2 использует скорость загрузки, наблюдаемую в предыдущих загрузках, чтобы адаптировать количество загрузок, запущенных параллельно согласно правилу N = A + B Log10 (скорость в Мбит/c). Коэффициенты А и В могут быть настроены в аргументах А и В, разделённых двоеточием. Значения по умолчанию (A=5, B=25) приводят к использованию обычно 5 параллельных загрузок в сетях с 1Мбит/с и более 50 в сетях с 100 Мбит/с. Число параллельных загрузок остаётся ограниченно максимумом, определяемом в параметре —max-concurrent-downloads . По умолчанию: false

Задать длину блока для HTTP/FTP-загрузок. Это является границей, когда aria2 разделяет файл на части. Все разделения происходят многократно по этой длине. Этот параметр будет игнорироваться при BitTorrent-загрузках. Также будет игнорироваться, если Metalink-файл содержит хэши блоков. По умолчанию: 1M

Возможный вариант использования параметра —piece-length — изменение диапазона запроса в одном конвейерном HTTP-запросе. Для включения конвейерной обработки HTTP используйте —enable-http-pipelining .

—show-console-readout [true|false] ¶

Показывать консольный индикатор. По умолчанию: true

Перенаправить весь вывод консоли в stderr (стандартный поток ошибок), иначе будет использован stdout (стандартный поток вывода). По умолчанию: false

Задать интервал в секундах до вывода сообщения о прогрессе загрузки. Установка 0 запрещает вывод. По умолчанию: 60

-Z , —force-sequential [true|false] ¶

Получить URI в последовательности командной строки и загрузить каждое URI в отдельной сессии, как в обычных утилитах загрузки командной строки. По умолчанию: false

Задать максимальную общую скорость загрузки в байтах/сек. 0 значит неограниченно. Вы можете добавить K или M (1K = 1024, 1M = 1024K). Чтобы ограничить скорость загрузки для узла, используйте параметр —max-download-limit . По умолчанию: 0

Установить максимальную скорость каждого узла загрузки в байтах/сек. 0 значит неограниченно. Вы можете добавить K или M (1K = 1024, 1M = 1024K). Чтобы ограничить общую скорость загрузки, используйте параметр —max-overall-download-limit . По умолчанию: 0

Отключить загрузку файла aria2.conf.

Не резервируется место для файлов, размер которых меньше SIZE. Вы можете добавить K или M (1K = 1024, 1M = 1024K). По умолчанию: 5M

-P , —parameterized-uri [true|false] ¶

Включить поддержку параметризованных URI. Вы можете указать набор частей: http:///foo.iso . Также вы можете указать числовую последовательность с шагом счетчика: http://host/image[000-100:2].img . Шагом счетчика можно пренебречь. Если все URI не указывают на такой же файл, как во втором приведенном выше примере, то необходим параметр -Z. По умолчанию: false

-q , —quiet [true|false] ¶

Сделать aria2 молчаливой (без консольного вывода). По умолчанию: false

Подтверждать правильность блока данных путем вычисления контрольной суммы во время загрузки файла, если предусмотрена контрольная сумма блоков. По умолчанию: true

Удалять контрольный файл перед загрузкой. При использовании с —allow-overwrite=true файл всегда загружается с нуля. Это может понадобиться пользователям за прокси-сервером, который блокирует возобновление загрузки.

Сохранять ошибочные/незаконченные загрузки в FILE при завершении работы. Вы можете передать этот выходной файл aria2c с параметром —input-file при перезапуске. Если вам нужен сжатый файл, то добавьте к имени файла расширение .gz. Обратите внимание, что загрузки, добавленные через RPC-методы aria2.addTorrent() , aria2.addMetalink() и чьи метаданные не могут быть сохранены как файл, не будут сохраняться. Загрузки, удаленные с использованием aria2.remove() и aria2.forceRemove() не будут сохранены. GID также сохраняется параметром gid , но с некоторыми ограничениями, смотрите ниже.

Обычно, GID загрузки сам будет сохранён. Но некоторые загрузки используют метаданные (например, BitTorrent и Metalink). В этом случае есть некоторые ограничения.

magnet-ссылка, и последующая torrent-загрузка

Сохранится GID из метаданных BitTorrent-загрузки.

URI к torrent-файл, и последующая torrent-загрузка

Сохранится GID из torrent-файла загрузки.

URI к metalink-файл, и последующая загрузка файлов, описанных metalink-файле

Сохранится GID из metalink-файла загрузки.

Сохранится GID из torrent-загрузки.

Никакой значимый GID не сохранится.

—save-session-interval =

Сохранять ошибочные/незаконченные загрузки в файл, указанный в параметре —save-session , каждые SEC секунд. Если указан 0 , то файл будет сохранён только тогда, когда aria2 завершит работу. По умолчанию: 0

Задать максимальный приёмный буфер сокета в байтах. Указание 0 отключит этот параметр. Это значение будет установлено для дескриптора файла сокета с помощью SO_RCVBUF , параметра сокета в вызове setsockopt() . По умолчанию: 0

Останавливать программу после того как пройдет SEC секунд. Если задано 0 , эта возможность будет отключена. По умолчанию: 0

Остановить приложение, когда процесс с идентификационный номером PID не работает. Это полезно, если процесс aria2 запущен из родительского процесса. Родительский процесс может запустить aria2 со своим идентификационным номером и когда он (процесс) завершится по какой-то причине, aria2 может обнаружить это и самостоятельно завершить работу.

Укорачивать консольный индикатор, чтобы он поместился в одну строку. По умолчанию: true

Вывести номер версии, информацию об авторских правах, конфигурации и завершить работу.

Примечания для параметров¶

Необязательные аргументы¶

Параметры, которые имеют значения в квадратных скобках ([]), могут принимать дополнительные (необязательные) аргументы. Обычно отсутствие аргумента эквивалентно true . Если вы используется короткую форму параметров (например, -V ) и указываете аргумент, то имя параметра и его аргумент должны быть объедены (например, -Vfalse ). Если будут вставлены пробелы между именем параметра и аргументом, то аргумент будет обрабатываться как URI, и это не то, что обычно вы ожидаете.

Единицы (K и M)¶

Некоторые параметры принимают K и M для удобства представления 1024 и 1048576 соответственно. aria2 определяет эти символы без учета регистра. Другими словами, k и m могут быть использованы также как K и M соответственно.

URI, MAGNET-ССЫЛКА, TORRENT-ФАЙЛ, METALINK-ФАЙЛ¶

Вы можете перечислить несколько URI в командной строке. Пока вы не указали параметр —force-sequential , все URI должны указывать на один и тот же файл или загрузка завершится не удачно.

Вы можете указать произвольное количество BitTorrent Magnet URI. Обратите внимание, что они всегда будут обрабатываться как отдельная загрузка. Поддерживаются оба Info Hash (Информация о хэше), как закодированный 40 шестнадцатеричными символами, так и закодированный 32 символами Base32-кодировки. Поддерживаются составные параметры tr . Т.к. в BitTorrent Magnet URI возможно присутствие символа & , то настоятельно рекомендуется всегда заключать URI в одиночные( ‘ ) или двойные( » ) кавычки. Так же настоятельно рекомендуется включить DHT, особенно когда параметр tr не указан. Смотрите http://www.bittorrent.org/beps/bep_0009.html для детальной информации по BitTorrent Magnet URI.

Вы также можете указать произвольное количество torrent-файлов и Metalink-документов, которые хранятся на локальном диске. Обратите внимание, что они всегда будут обрабатываться как отдельная загрузка. Поддерживаются оба формата: Metalink4 и Metalink версии 3.0.

Вы можете указать вместе, torrent-файл с параметром —torrent-file и URI. Сделав это, вы можете загружать файл, используя torrent-рой и HTTP(S)/FTP/SFTP-сервер одновременно, пока данные из HTTP(S)/FTP/SFTP выгружаются в torrent-рой. Для однофайловых торрентов, URI может быть завершенным, который указывает на ресурс, или же если заканчиваться символом /, тогда name (имя) в torrent-файле будет добавлено. Для многофайловых торрентов, name (имя) и path (путь) в torrent-файле будут добавлены из URI для каждого файла.

Удостоверьтесь, что URI заключен в одинарные(‘) или двойные( » ) кавычки, если есть символ & или любые символы, которые имеют особое значение в командной оболочке.

Возобновление загрузки¶

Обычно, вы можете возобновить передачу, только запустив ту же самую команду (aria2c URI), которая выполнялась при предыдущей передаче, созданной aria2.

Если предыдущая передача создана веб-браузером или wget-подобным менеджером загрузки, тогда используйте параметр —continue для продолжения передачи.

Перехват сообщения¶

aria2 предоставляет параметры, в которых указываются произвольные команды, выполняемые после наступления определенного события. В настоящее время доступны следующие параметры: —on-bt-download-complete , —on-download-pause , —on-download-complete , —on-download-start , —on-download-error , —on-download-stop .

aria2 передает 3 аргумента указанной команды, которая выполняется. Это аргументы: GID, количество файлов и путь к файлу. Для HTTP-, FTP- и SFTP-загрузок, обычно количество файлов — 1. BitTorrent загрузка может содержать множество файлов. Если число файлов больше чем один, то путь к файлу будет для первого. Другими словами, это значение параметра path в первой структуре, определенный параметр которой имеет значение true (истина), в ответе RPC-метода aria2.getFiles() . Если вы хотите получить все пути к файлам, то рассмотрите использование JSON-RPC/XML-RPC. Обратите внимание, что путь к файлу может меняться в процессе загрузки по HTTP из-за перенаправления или заголовка Content-Disposition.

Посмотрите пример, как аргументы передаются команде:

$ cat hook.sh #!/bin/sh echo "Called with [$1] [$2] [$3]" $ aria2c --on-download-complete hook.sh http://example.org/file.iso Called with [1] [1] [/path/to/file.iso] 

КОДЫ ЗАВЕРШЕНИЯ¶

Поскольку aria2 может обрабатывать несколько загрузок одновременно, она сталкивается с множеством ошибок в сессии. aria2 возвращает следующий код завершения, основанный на последней встретившейся ошибке.

Если все загрузки завершились успешно.

Если произошла неизвестная ошибка.

Если время истекло.

Если ресурс не был найден.

Если aria2 получила определенное число ошибок «ресурс не найден». Смотрите параметр —max-file-not-found .

Если загрузка прервана, поскольку скорость загрузки была слишком медленной. Смотрите параметр —lowest-speed-limit .

Если произошла проблема с сетью.

Если были незавершенные загрузки. Эта ошибка только появляется, только если все завершенные загрузки были успешны и были незавершенные загрузки в очереди, когда aria2 завершила работу по нажатию Ctrl — C пользователем или при отправке сигнала TERM или INT.

Если удаленный сервер не поддерживает возобновление, когда оно было указано как обязательное для завершения загрузки.

Если было недостаточно пространства на диске.

Если размер блока был отличным от указанного контрольном .aria2-файле. Смотрите параметр —allow-piece-length-change .

Если aria2 был загружен один и тот же файл в тот момент.

Если aria2 загрузила торрент с одним и тем же хэшем в этот момент.

Если файл уже существует. Смотрите параметр —allow-overwrite .

Если не удалось переименование. Смотрите параметр —auto-file-renaming .

Если aria2 не смогла открыть существующий файл.

Если aria2 не смогла создать новый файл или обрезать существующий файл.

Если произошла ошибка чтения/записи файла.

Если aria2 не смогла создать каталог.

Если не удалось разрешение имен (DNS).

Если aria2 не смогла проанализировать Metalink-документ.

Если FTP-команда не удалась.

Если HTTP-заголовок ответа был испорчен или неожиданным.

Если произошло слишком много перенаправлений.

Если HTTP-авторизация не удалась.

Если aria2 не смогла проанализировать закодированный файл (обычно файл «.torrent»).

Если файл «.torrent» был испорчен или потеряна информация, которая необходима aria2.

Если Magnet-ссылка была плохой.

Если был задан плохой/неопознанный параметр или неожиданный аргумент к нему.

Если удаленный сервер не смог обработать запрос из-за временной перегрузки или регламентных работ.

Если aria2 не смогла проанализировать JSON-RPC-запрос.

Зарезервировано. Не используется.

Если проверка контрольной суммы не удалась.

Ошибка, произошедшая в завершенной загрузке, не будет передана как код завершения.

ОКРУЖЕНИЕ¶

aria2 распознает следующие переменные окружения.

Указать прокси-сервер для использования в HTTP. Заменяет значение http-proxy в конфигурационном файле. Параметр —http-proxy в командной строке заменяет эту переменную.

Указать прокси-сервер для использования в HTTPS. Заменяет значение https-proxy в конфигурационном файле. Параметр —https-proxy в командной строке заменяет эту переменную.

Указать прокси-сервер для использования в FTP. Заменяет значение ftp-proxy в конфигурационном файле. Параметр —ftp-proxy в командной строке заменяет эту переменную.

Указать прокси-сервер для использования, если не указан конкретный протокол для прокси. Заменяет значение all-proxy в конфигурационном файле. Параметр —all-proxy в командной строке заменяет эту переменную.

Несмотря на то, что aria2 допускает ftp:// и https:// схемы прокси в URI, она просто предполагает, что определен http:// и не меняет своего поведения, основанного на определенной схеме.

no_proxy [ДОМЕН. ]

Указать, разделенные запятыми, список имён хостов, доменов и сетевых адресов с или без маски подсети, для которых не будет использоваться прокси. Заменяет значение no-proxy в конфигурационном файле. Параметр —no-proxy в командной строке заменяет эту переменную.

ФАЙЛЫ¶

aria2.conf¶

По умолчанию, aria2 проверяет наличие $HOME/.aria2/aria2.conf по устаревшему пути, иначе анализируется $XDG_CONFIG_HOME/aria2/aria2.conf как конфигурационный файл. Вы можете указать путь к конфигурационному файлу в параметре —conf-path . Если вы не хотите использовать конфигурационный файл, используйте параметр —no-conf .

Конфигурационный файл — это текстовый файл, содержащий один параметр в строке. В каждой строке, вы можете указать пары имя-значение в формате: ИМЯ=ЗНАЧЕНИЕ, где имя — это длинный параметр командной строки, без префикса — . Вы можете использовать тот же синтаксис, что и для параметра командной строки. Строки начинающиеся с # рассматриваются как комментарии:

# sample configuration file for aria2c listen-port=60000 dht-listen-port=60000 seed-ratio=1.0 max-upload-limit=50K ftp-pasv=true 

Конфиденциальная информация такая как пользователь/пароль могут быть включены в конфигурационный файл. Рекомендуется изменить режим доступа к конфигурационному файлу (например, chmod 600 aria2.conf ), так другие пользователи не смогут увидеть содержимое файла.

Значения перемененных окружения, таких как $ , подставляются командной оболочкой. Это означает, что эти переменные, используемые в файле конфигурации, не подставляются. Тем не менее, полезно для обозначения домашнего каталога пользователя в конфигурационном файле использовать $ , чтобы указать путь к файлам. Таким образом, aria2 подставляет путь к домашней директории пользователя при найденной переменной $ , в следующих значениях параметров:

  • ca-certificate
  • certificate
  • dht-file-path
  • dht-file-path6
  • dir
  • input-file
  • load-cookies
  • log
  • metalink-file
  • netrc-path
  • on-bt-download-complete
  • on-download-complete
  • on-download-error
  • on-download-start
  • on-download-stop
  • on-download-pause
  • out
  • private-key
  • rpc-certificate
  • rpc-private-key
  • save-cookies
  • save-session
  • server-stat-if
  • server-stat-of
  • torrent-file

Обратите внимание, что подстановка происходит даже в том случае, если вышеуказанные параметры используются в командной строке. Это означает, что подстановка может происходить 2 раза: сначала командной оболочкой, а затем aria2c.

dht.dat¶

Если устаревшие пути к файлам $HOME/.aria2/dht.dat и $HOME/.aria2/dht6.dat указывают на несуществующие файлы, то таблица маршрутизации IPv4 DHT сохраняется в $XDG_CACHE_HOME/aria2/dht.dat , а таблица маршрутизации IPv6 DHT сохраняется в $XDG_CACHE_HOME/aria2/dht6.dat .

Netrc¶

Поддержка Netrc включена по умолчанию для HTTP(S)/FTP/SFTP. Для отключения поддержки netrc, укажите параметр —no-netrc . Ваш файл .netrc должен иметь соответствующие права (600).

Если имя машины (machine) начинается с . , то aria2 выполняет доменное сопоставление вместо точного соответствия. Это расширение aria2. Пример доменного сопоставления, представьте себе следующие содержимое .netrc:

machine .example.org login myid password mypasswd 

Доменное имя aria2.example.org совпадает с .example.org и используется myid и mypasswd .

Примеры некоторых совпадений доменных имен: доменное имя example.net не совпадает с .example.org . Доменное имя example.org не совпадает .example.org из-за предшествующей . . Если вы хотите совпадения example.org , то точно укажите — example.org .

Контрольный файл¶

aria2 использует контрольный файл для отслеживания прогресса загрузки. Контрольный файл размещается в том же каталоге, что и загружаемый файл, и имеет имя, как у загружаемого файла с добавлением .aria2 . Например, если file.zip загружаемый файл, тогда контрольный файл будет file.zip.aria2. (Существует исключение для этого именования. При загрузке торрента с множеством файлов, контрольный файл будет в «корневом каталоге» с именем торрента и добавлением .aria2 . Имя «корневого каталога» — значение ключа «name» в «info» внутри torrent-файла.)

Обычно контрольный файл удаляется после завершения загрузки. Если aria2 решает, что загрузка не может быть возобновлена (например, когда загружается файл с HTTP-сервера, который не поддерживает возобновление), контрольный файл не создается.

Обычно, если вы потеряете контрольный файл, вы не сможете возобновить загрузку. Но если у вас есть torrent или metalink файлы с контрольными суммами блоков данных, вы сможете возобновить загрузку без контрольного файла, указав параметр -V в командной строке aria2c.

Входной файл¶

Входной файл может содержать список URI для загрузки aria2. Вы можете указать несколько URI для одного объекта, разделяя URI, в одной строке, табуляцией.

Каждая строка рассматривается, как аргумент командой строки. Следовательно, на них влияют параметры —force-sequential и —parameterized-uri .

Так как aria2 непосредственно читает URI из входного файла, то они не должны быть указаны с одинарными(‘) или двойными(«) кавычками.

Строка, которая начинается с # обрабатывается как комментарий и пропускается.

Кроме того, следующие параметры могут быть определены после каждой строки с URI. Эти дополнительные строки должны начинаться с пробела(ов).

  • all-proxy
  • all-proxy-passwd
  • all-proxy-user
  • allow-overwrite
  • allow-piece-length-change
  • always-resume
  • async-dns
  • auto-file-renaming
  • bt-enable-hook-after-hash-check
  • bt-enable-lpd
  • bt-exclude-tracker
  • bt-external-ip
  • bt-force-encryption
  • bt-hash-check-seed
  • bt-load-saved-metadata
  • bt-max-peers
  • bt-metadata-only
  • bt-min-crypto-level
  • bt-prioritize-piece
  • bt-remove-unselected-file
  • bt-request-peer-speed-limit
  • bt-require-crypto
  • bt-save-metadata
  • bt-seed-unverified
  • bt-stop-timeout
  • bt-tracker
  • bt-tracker-connect-timeout
  • bt-tracker-interval
  • bt-tracker-timeout
  • check-integrity
  • checksum
  • conditional-get
  • connect-timeout
  • content-disposition-default-utf8
  • continue
  • dir
  • dry-run
  • enable-http-keep-alive
  • enable-http-pipelining
  • enable-mmap
  • enable-peer-exchange
  • file-allocation
  • follow-metalink
  • follow-torrent
  • force-save
  • ftp-passwd
  • ftp-pasv
  • ftp-proxy
  • ftp-proxy-passwd
  • ftp-proxy-user
  • ftp-reuse-connection
  • ftp-type
  • ftp-user
  • gid
  • hash-check-only
  • header
  • http-accept-gzip
  • http-auth-challenge
  • http-no-cache
  • http-passwd
  • http-proxy
  • http-proxy-passwd
  • http-proxy-user
  • http-user
  • https-proxy
  • https-proxy-passwd
  • https-proxy-user
  • index-out
  • lowest-speed-limit
  • max-connection-per-server
  • max-download-limit
  • max-file-not-found
  • max-mmap-limit
  • max-resume-failure-tries
  • max-tries
  • max-upload-limit
  • metalink-base-uri
  • metalink-enable-unique-protocol
  • metalink-language
  • metalink-location
  • metalink-os
  • metalink-preferred-protocol
  • metalink-version
  • min-split-size
  • no-file-allocation-limit
  • no-netrc
  • no-proxy
  • out
  • parameterized-uri
  • pause
  • pause-metadata
  • piece-length
  • proxy-method
  • realtime-chunk-checksum
  • referer
  • remote-time
  • remove-control-file
  • retry-wait
  • reuse-uri
  • rpc-save-upload-metadata
  • seed-ratio
  • seed-time
  • select-file
  • split
  • ssh-host-key-md
  • stream-piece-selector
  • timeout
  • uri-selector
  • use-head
  • user-agent

Эти параметры имеют точно такой же смысл, что параметры командной строки, но это применимо только к URI, к которым они принадлежат. Обратите внимание, что параметры во входном файле не должны иметь префикс — .

Например, такое содержимое uri.txt:

http://server/file.iso http://mirror/file.iso dir=/iso_images out=file.img http://foo/bar 

Если aria2 выполняется с параметрами -i uri.txt -d /tmp , а загрузка происходит с http://server/file.iso и http://mirror/file.iso , то file.iso сохранится как /iso_images/file.img . Файл bar загрузится с http://foo/bar и сохранится как /tmp/bar .

В некоторых случаях, параметр out не имеет никакого эффекта. Смотрите примечание по ограничениям параметра —out .

Профиль функционирования сервера¶

Этот раздел описывает формат профиля функционирования сервера. Это открытый текстовый файл, каждая строка которого имеет несколько пар ИМЯ=ЗНАЧЕНИЕ, разделенных запятыми. В настоящее время распознаются следующие ИМЕНА:

Имя хоста сервера. Обязательно.

Протокол для этого профиля, такие как ftp, http. Обязательно.

Средняя скорость загрузки, которая наблюдалась при предыдущей загрузке, в байт/секунду. Обязательно.

Средняя скорость загрузки, которая наблюдалась при предыдущей загрузке, в байт/секунду. Это значение обновляется, только если загрузка произведена при одном соединении и только с использованием AdaptiveURISelector. Необязательно.

Средняя скорость загрузки, которая наблюдалась при предыдущей загрузке, в байт/секунду. Это значение обновляется, только если загрузка произведена при нескольких соединениях и только с использованием AdaptiveURISelector. Необязательно.

Сколько раз использовался сервер. В настоящее время это значение используется только при AdaptiveURISelector. Необязательно.

Время связи, в GMT, с этим сервером, указывается в секундах, начиная с 00:00:00 1 Января, 1970, UTC. Обязательно.

ERROR, когда сервер недоступен из-за неисправности или тайм-аута. Иначе — OK.

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

Например, следующим образом:

host=localhost, protocol=http, dl_speed=32000, last_updated=1222491640, status=OK host=localhost, protocol=ftp, dl_speed=0, last_updated=1222491632, status=ERROR 

RPC-ИНТЕРФЕЙС¶

aria2 обеспечивает JSON-RPC через HTTP и XML-RPC через HTTP интерфейсы и они в основном имеют одинаковые функции. aria2 также обеспечивает JSON-RPC через WebSocket. JSON-RPC через WebSocket использует тот же самый метод сигнатур и формат ответа как у JSON-RPC через HTTP, но дополнительно предоставляет уведомления, инициированные сервером. Смотрите раздел JSON-RPC через WebSocket для получения дополнительной информации.

Путь запроса к JSON-RPC-интерфейсу (для через HTTP и через WebSocket) — /jsonrpc . Путь запроса к XML-RPC-интерфейсу — /rpc .

WebSocket URI для JSON-RPC через WebSocket является ws://HOST:PORT/jsonrpc . Если вы включили SSL/TLS-шифрование, то используйте wss://HOST:PORT/jsonrpc .

Реализованный JSON-RPC основан на спецификации JSON-RPC 2.0 и поддерживает HTTP POST и GET (JSONP). WebSocket-транспорт является расширением aria2.

JSON-RPC-интерфейс не поддерживает уведомления через HTTP, но RPC-сервер будет отправлять уведомления через WebSocket. Он также не поддерживает числа с плавающей точкой. Символы должны быть в кодировке UTF-8.

Читая следующую документацию для JSON-RPC, интерпретируйте структуры как JSON-объекты.

Терминология¶

GID (или gid) — это ключ, для управления каждой загрузкой. Каждая загрузка будет подписана уникальным GID. GID сохранится в aria2 как 64-битное двоичное значение. Для RPC-доступа, он должен быть представлен в виде шестнадцатеричной строки из 16 символов (например, 2089b05ecca3d829 ). Обычно, aria2 генерирует этот GID для каждой загрузки, но пользователь может определить GID вручную, используя параметр —gid . При запросе загрузок по GID, вы можете задать только префикс GID пока он является уникальным среди других.

RPC-авторизация по секретному маркеру¶

Начиная с 1.18.4, в дополнение к базовой HTTP-авторизации, aria2 обеспечивает method-level RPC-авторизацию. В будущих версиях, базовая HTTP-авторизация будет удалена и method-level RPC-авторизация станет обязательной.

Чтобы использовать method-level RPC-авторизацию, пользователь должен указать секретный маркер RPC-авторизации, используя параметр —rpc-secret . Для каждого вызова RPC-метода, вызывающий должен включать маркер с префиксом token: . Даже когда параметр —rpc-secret не используется, и если первым параметром в RPC-методе является строка и начинается с token: , то она будет удалёна из списка параметров, прежде чем запрос будет обработан.

Например, если секретный маркер RPC-авторизации — $$secret$$ , то вызов RPC-метода aria2.addUri будет выглядеть следующим образом:

RPC-метод system.multicall обрабатывается особым образом. Поскольку спецификация XML-RPC позволяет использовать только один массив в качестве параметра для этого метода, мы не указываем маркер в вызове. Вместо этого каждый вложенный вызов метода должен обеспечивать маркер в качестве первого параметра, как описано выше.

Проверка секретного маркера в aria2 разработана, чтобы противостоять хотя бы определенное количество времени, ослаблять атаки методом грубой силы/по словарю против RPC-интерфейса. Поэтому рекомендуется отдавать предпочтение пакетным или system.multicall запросам, когда это необходимо.

system.listMethods и system.listNotifications могут выполняться без секретного маркера. Так они просто возвращает доступные методы/уведомления, и ничего не изменяют, они безопасны без секретного маркера.

Методы¶

Весь примеры кода совместимы с Python 2.7. Для получения информации о параметре secret смотрите RPC-авторизация по секретному маркеру .

aria2. addUri ( [ secret, ] uris [ , options [ , position ] ] ) ¶

Этот метод добавляет новую загрузку. Параметр uris — это массив HTTP(S)/FTP/SFTP/BitTorrent Magnet URI (строки), указывающие на один и тот же ресурс. Если вы смешивайте URI, указывающие на разные ресурсы, то загрузка может неудачно завершиться или быть повреждена без жалоб со стороны aria2. При добавлении BitTorrent Magnet URI, uris должен содержать только один элемент, и он должен быть BitTorrent Magnet-ссылкой. Параметр options — это структура, а её элементы являются парами имя и значение. Смотрите ниже Параметры для более подробной информации. Если параметр position задан, то он должен быть целым числом, начиная с 0. Новая загрузка будет вставлена на позицию position в очередь ожидания. Если параметр position пропущен или больше чем текущий размер очереди, то новая загрузка будет добавлена в конец очереди. Этот метод возвращает GID зарегистрированной загрузки.

Пример JSON-RPC

Следующий пример добавляет http://example.org/file в aria2 :

>>> import urllib2, json >>> jsonreq = json.dumps('jsonrpc':'2.0', 'id':'qwer', . 'method':'aria2.addUri', . 'params':[['http://example.org/file']]>) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> c.read() '' 

Пример XML-RPC

Следующий пример добавляет http://example.org/file в aria2 :

>>> import xmlrpclib >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> s.aria2.addUri(['http://example.org/file']) '2089b05ecca3d829' 

Следующий пример добавляет новую загрузку с двумя источниками и некоторые параметры:

>>> s.aria2.addUri(['http://example.org/file', 'http://mirror/file'], dict(dir="/tmp")) 'd2703803b52216d1' 

Следующий пример добавляет загрузку и вставляет её впереди очереди:

>>> s.aria2.addUri(['http://example.org/file'], <>, 0) 'ca3d829cee549a4d' 

aria2. addTorrent ( [ secret, ] torrent [ , uris [ , options [ , position ] ] ] ) ¶

Этот метод добавляет BitTorrent-загрузку путем загрузки .torrent-файла. Если вы хотите добавить BitTorrent Magnet URI, взамен используйте метод aria2.addUri() . Параметр torrent должен быть base64-кодированной строкой, с содержимым .torrent-файла. Параметр uris — это массив c URI (строка). Параметр uris используется для Web-сидирования. Для однофайловых торрентов, URI может быть полным, который указывает на ресурс; если URI заканчивается символом /, тогда будет добавлено имя из torrent-файла. Для многофайловых торрентов, чтобы cформировать URI для каждого файла, будут добавлены имя и путь из торрента. Параметр options — это структура, а её элементы являются парами имя и значение. Смотрите ниже Параметры для более подробной информации. Если параметр position задан, то он должен быть целым числом, начиная с 0. Новая загрузка будет вставлена на позицию position в очередь ожидания. Если параметр position пропущен или больше чем текущий размер очереди, то новая загрузка будет добавлена в конец очереди. Этот метод возвращает GID зарегистрированной загрузки. Если —rpc-save-upload-metadata задан как true , загруженные данные сохраняются в файл с именем шестнадцатеричной строки SHA-1-хэша этих данных плюс «.torrent», в каталог указанный в параметре —dir . Например, имя файла может быть 0a3893293e27ac0490424c06de4d09242215f0a6.torrent . Если файл с таким же именем существует, то он будет перезаписан! Если файл не может быть успешно сохранен или —rpc-save-upload-metadata задан как false , то загрузки, добавленные этим методом, не сохраняются при помощи параметра —save-session .

Следующие примеры добавляют локальный файл file.torrent .

Пример JSON-RPC

>>> import urllib2, json, base64 >>> torrent = base64.b64encode(open('file.torrent').read()) >>> jsonreq = json.dumps('jsonrpc':'2.0', 'id':'asdf', . 'method':'aria2.addTorrent', 'params':[torrent]>) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> c.read() '' 

Пример XML-RPC

>>> import xmlrpclib >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> s.aria2.addTorrent(xmlrpclib.Binary(open('file.torrent', mode='rb').read())) '2089b05ecca3d829' 

aria2. addMetalink ( [ secret, ] metalink [ , options [ , position ] ] ) ¶

Этот метод добавляет Metalink-загрузку путем загрузки .metalink-файла. Параметр metalink должен быть base64-кодированной строкой, с содержимым .metalink-файла. Параметр options — это структура, а её элементы являются парами имя и значение. Смотрите ниже Параметры для более подробной информации. Если параметр position задан, то он должен быть целым числом, начиная с 0. Новая загрузка будет вставлена на позицию position в очередь ожидания. Если параметр position пропущен или больше чем текущий размер очереди, то новая загрузка будет добавлена в конец очереди. Этот метод возвращает GID зарегистрированной загрузки. Если —rpc-save-upload-metadata задан как true , загруженные данные сохраняются в файл с именем шестнадцатеричной строки SHA-1-хэша этих данных плюс «.metalink», в каталог указанный в параметре —dir . Например, имя файла может быть 0a3893293e27ac0490424c06de4d09242215f0a6.metalink . Если файл с таким же именем существует, то он будет перезаписан! Если файл не может быть успешно сохранен или —rpc-save-upload-metadata задан как false , то загрузки, добавленные этим методом, не сохраняются при помощи параметра —save-session .

Следующие примеры добавляют локальный файл file.meta4.

Пример JSON-RPC

>>> import urllib2, json, base64 >>> metalink = base64.b64encode(open('file.meta4').read()) >>> jsonreq = json.dumps('jsonrpc':'2.0', 'id':'qwer', . 'method':'aria2.addMetalink', . 'params':[metalink]>) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> c.read() '' 

Пример XML-RPC

>>> import xmlrpclib >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> s.aria2.addMetalink(xmlrpclib.Binary(open('file.meta4', mode='rb').read())) ['2089b05ecca3d829'] 

aria2. remove ( [ secret, ] gid ) ¶

Этот метод удаляет загрузку, которая обозначена gid (строка). Если указана загрузка, которая загружается в данный момент, то сначала она остановится. Статус удаления станет removed (удаленно). Этот метод возвращает GID удаленной загрузки.

Следующие примеры удаляют загрузку c GID#2089b05ecca3d829.

Пример JSON-RPC

>>> import urllib2, json >>> jsonreq = json.dumps('jsonrpc':'2.0', 'id':'qwer', . 'method':'aria2.remove', . 'params':['2089b05ecca3d829']>) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> c.read() '' 

Пример XML-RPC

>>> import xmlrpclib >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> s.aria2.remove('2089b05ecca3d829') '2089b05ecca3d829' 

aria2. forceRemove ( [ secret, ] gid ) ¶

Этот метод удаляет загрузку, которая обозначена gid. Метод действует подобно aria2.remove() , за исключением того, что метод удаляет загрузку без выполнения каких-либо действий, которые требуют времени, например связь с BitTorrent-трекерами для отмены регистрации загрузки.

Этот метод приостанавливает загрузку, которая обозначена gid (строка). Статус приостановки станет paused (приостановлено). Если загрузка активна, то загрузка переместится в начало очереди ожидания. Пока статус paused , загрузка не начнется. Для смены статуса на waiting , используйте метод aria2.unpause() . Этот метод возвращает GID приостановленной загрузки.

aria2. pauseAll ( [ secret ] ) ¶

Этот метод эквивалентен по вызову aria2.pause() , для каждой активной/ожидающей закачки. Этот метод возвращает OK .

aria2. forcePause ( [ secret, ] gid ) ¶

Этот метод приостанавливает загрузку, которая обозначена gid. Метод действует подобно aria2.pause() , за исключением того, что метод приостанавливает загрузки без выполнения каких-либо действий, которые требуют времени,например связь с BitTorrent-трекерами для отмены регистрации загрузки.

aria2. forcePauseAll ( [ secret ] ) ¶

Этот метод эквивалентен по вызову aria2.forcePause() , для каждой активной/ожидающей загрузки. Этот метод возвращает OK .

aria2. unpause ( [ secret, ] gid ) ¶

Этот метод изменяет статус загрузки, которая обозначена ‘gid’ (строка), с paused на waiting , что позволяет перезапускать загрузку. Этот метод возвращает GID загрузки, снятой с паузы.

aria2. unpauseAll ( [ secret ] ) ¶

Этот метод эквивалентен по вызову aria2.unpause() , для каждой приостановленной загрузки. Этот метод возвращает OK .

aria2. tellStatus ( [ secret, ] gid [ , keys ] ) ¶

Этот метод возвращает состояние загрузки, которая обозначена gid (строка). Параметр keys — это массив строк. Если keys указан, то ответ содержит только ключи в массиве keys. Если keys пустой или пропущен, то ответ содержит все ключи. Это полезно, если вы хотите использовать определенные параметры, чтобы исключить множество пересылок. Например, aria2.tellStatus(«2089b05ecca3d829», [«gid», «status»]) возвратит только ключи gid и status. Ответ — это структура и содержит следующие ключи. Значения являются строками.

active — загружаемая/сидируемая в данный момент. waiting — ожидающая в очереди; загрузка не началась. paused — приостановленная. error — остановленная, т.к. произошла ошибка. complete — остановленная и завершенная загрузка. removed — удаленная пользователем загрузка.

Общий объём загрузки в байтах.

Загруженный объём загрузки в байтах.

Выгруженный объём загрузки в байтах.

Шестнадцатеричное представление процесса загрузки. Старший бит соответствует блоку с индексом 0. Любые биты устанавливаются, если блоки загружены и не устанавливаются, если блоки не загружены и/или отсутствуют. Любые избыточные биты в конце устанавливаются в 0. Если загрузка ещё не была запущена, этот ключ не будет включён в ответ.

Скорость загрузки в байт/сек.

Скорость выгрузки в байт/сек.

Информация о хэше (InfoHash). Только для BitTorrent.

Количество сидов, к которым подключена aria2. Только для BitTorrent.

true — если локальная конечная точка является сидом. Иначе false . Только для BitTorrent.

Размер блока в байтах.

Количество пиров/серверов, к которым подключена aria2.

Код последней ошибки для этого элемента, если таковая имеется. Значение является строкой. Коды ошибок определены в разделе КОДЫ ЗАВЕРШЕНИЯ. Это значение доступно только для остановленных/завершённых загрузок.

Сообщение об ошибке, удобное (надеюсь) для восприятия, связанной с errorCode .

Список с GID, которые сгенерируются в результате этой загрузки. Например, когда aria2 загружает Metalink-файл, то это генерирует загрузки, описанные в Metalink-файле (см. параметр —follow-metalink ). Это значение полезно для отслеживания автоматически сгенерированных загрузок. Если таких загрузок нет, то ключ не будет включён в ответ.

Обратная ссылка для followedBy . У загрузки, включённой в followedBy , есть GID этого объекта в этом значении following .

GID родительской загрузки. Некоторые загрузки являются частью другой загрузки. Например, если файл в Metalink содержит BitTorrent ресурсы, загрузки «.torrent» файлов будут частями этого родителя. Если эта загрузка не имеет родителя, то ключ не будет включён в ответ.

Каталог для сохранения файлов.

Возвращает список файлов. Элементы списка — это структуры, такие же, что и в методе aria2.getFiles() .

Структура, в которой содержится информация, извлеченная из .torrent-файла. Только для BitTorrent. Содержит следующие поля.

Список списков URI анонса. Если торрент содержит `announce , а не announce-list` , то announce` конвертируется в формат announce-list` .

Комментарий торрента. Используется comment.utf-8 , если доступно.

Время создания торрента. Значение является целым числом, с начала века, измеряется в секундах.

Файловый режим торрента. Значение одно из двух: single (одиночный) или multi (множественный).

Структура, которая содержит данные из раздела Info. Она содержит следующие поля.

имя в разделе info. Используется name.utf-8 , если доступно.

Количество проверенных байт во время проверки хэша. Это поле появляется только тогда, когда загрузка начинает проверять хэш.

true — если эта загрузка ожидает в очереди проверки хэша. Это поле появляется только тогда, когда эта загрузка находится в очереди.

Пример JSON-RPC

Следующий пример получает информацию о загрузке с GID#2089b05ecca3d829:

>>> import urllib2, json >>> from pprint import pprint >>> jsonreq = json.dumps('jsonrpc':'2.0', 'id':'qwer', . 'method':'aria2.tellStatus', . 'params':['2089b05ecca3d829']>) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> pprint(json.loads(c.read()))   u'jsonrpc': u'2.0', u'result':  u'completedLength': u'901120', u'connections': u'1', u'dir': u'/downloads', u'downloadSpeed': u'15158', u'files': [  u'length': u'34896138', u'completedLength': u'34896138', u'path': u'/downloads/file', u'selected': u'true', u'uris': [  u'uri': u'http://example.org/file'>]>], u'gid': u'2089b05ecca3d829', u'numPieces': u'34', u'pieceLength': u'1048576', u'status': u'active', u'totalLength': u'34896138', u'uploadLength': u'0', u'uploadSpeed': u'0'>> 

Следующий пример получает только определённые ключи:

>>> jsonreq = json.dumps('jsonrpc':'2.0', 'id':'qwer', . 'method':'aria2.tellStatus', . 'params':['2089b05ecca3d829', . ['gid', . 'totalLength', . 'completedLength']]>) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> pprint(json.loads(c.read()))   u'jsonrpc': u'2.0', u'result':  u'gid': u'2089b05ecca3d829', u'totalLength': u'34896138'>> 

Пример XML-RPC

Следующий пример получает информацию о загрузке с GID#2089b05ecca3d829:

>>> import xmlrpclib >>> from pprint import pprint >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> r = s.aria2.tellStatus('2089b05ecca3d829') >>> pprint(r)   'completedLength': '34896138', 'connections': '0', 'dir': '/downloads', 'downloadSpeed': '0', 'errorCode': '0', 'files': [  'length': '34896138', 'completedLength': '34896138', 'path': '/downloads/file', 'selected': 'true', 'uris': [  'uri': 'http://example.org/file'>]>], 'gid': '2089b05ecca3d829', 'numPieces': '17', 'pieceLength': '2097152', 'status': 'complete', 'totalLength': '34896138', 'uploadLength': '0', 'uploadSpeed': '0'> 

Следующий пример получает только определённые ключи:

>>> r = s.aria2.tellStatus(‘2089b05ecca3d829’, [‘gid’, ‘totalLength’, ‘completedLength’]) >>> pprint(r)
aria2. getUris ( [ secret, ] gid ) ¶

Этот метод возвращает URI, используемые в загрузке, которые обозначены gid (строка). Ответ — это массив структур и они содержат следующие ключи. Значения являются строкой.

‘used’, если URI используется. ‘waiting’, если URI все ещё ожидает в очереди.

Пример JSON-RPC

>>> import urllib2, json >>> from pprint import pprint >>> jsonreq = json.dumps('jsonrpc':'2.0', 'id':'qwer', . 'method':'aria2.getUris', . 'params':['2089b05ecca3d829']>) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> pprint(json.loads(c.read()))   u'jsonrpc': u'2.0', u'result': [  u'uri': u'http://example.org/file'>]> 

Пример XML-RPC

>>> import xmlrpclib >>> from pprint import pprint >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> r = s.aria2.getUris('2089b05ecca3d829') >>> pprint(r) [] 

aria2. getFiles ( [ secret, ] gid ) ¶

Этот метод возвращает список файлов загрузки, которая обозначена gid (строка). Ответ — это массив структур, которые содержат следующие ключи. Значения являются строками.

Индекс файла, начинается с 1, в том же порядке, как файлы появляются в многофайловом торренте.

Размер файла в байта.

Загруженный объём файла в байтах. Обратите внимание, вполне возможно, что сумма completedLength меньше чем возвращаемая методом aria2.tellStatus() . Это потому, что в completedLength aria2.getFiles() включены только завершенные блоки. С другой стороны, в completedLength aria2.tellStatus() также включены частично завершённые блоки.

true — если этот файл выбран параметром —select-file . Если параметр —select-file не указан или это однофайловый торрент или загрузка вообще не торрент, то это значение всегда будет true . Иначе false .

Возвращает список URI для этого файла. Тип элемента такая же структура, что используется в методе aria2.getUris() .

Пример JSON-RPC

>>> import urllib2, json >>> from pprint import pprint >>> jsonreq = json.dumps('jsonrpc':'2.0', 'id':'qwer', . 'method':'aria2.getFiles', . 'params':['2089b05ecca3d829']>) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> pprint(json.loads(c.read()))   u'jsonrpc': u'2.0', u'result': [  u'length': u'34896138', u'completedLength': u'34896138', u'path': u'/downloads/file', u'selected': u'true', u'uris': [  u'uri': u'http://example.org/file'>]>]> 

Пример XML-RPC

>>> import xmlrpclib >>> from pprint import pprint >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> r = s.aria2.getFiles('2089b05ecca3d829') >>> pprint(r) [  'length': '34896138', 'completedLength': '34896138', 'path': '/downloads/file', 'selected': 'true', 'uris': [  'uri': 'http://example.org/file'>]>] 

aria2. getPeers ( [ secret, ] gid ) ¶

Этот метод возвращает список пиров загрузки, которая обозначена gid (строка). Этот метод только для BitTorrent. Ответ — это массив структур, которые содержат следующие ключи. Значения являются строками.

Закодированное ID пира.

Номер порта пира.

Шестнадцатеричное представление процесса загрузки. Старший бит соответствует блоку с индексом 0. Бит устанавливается, если блок доступен и не устанавливается, если блок отсутствует. Любые запасные биты в конце устанавливаются в 0.

true — если aria2 блокирует пира. Иначе false .

true — если пир блокирует aria2. Иначе false .

Скорость загрузки (байт/сек), с которой этот клиент получает от пира.

Скорость выгрузки (байт/сек), с которой этот клиент отдает пиру.

true — если этот пир является сидом. Иначе false .

Пример JSON-RPC

>>> import urllib2, json >>> from pprint import pprint >>> jsonreq = json.dumps('jsonrpc':'2.0', 'id':'qwer', . 'method':'aria2.getPeers', . 'params':['2089b05ecca3d829']>) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> pprint(json.loads(c.read()))   u'jsonrpc': u'2.0', u'result': [  u'bitfield': u'ffffffffffffffffffffffffffffffffffffffff', u'downloadSpeed': u'10602', u'ip': u'10.0.0.9', u'peerChoking': u'false', u'peerId': u'aria2%2F1%2E10%2E5%2D%87%2A%EDz%2F%F7%E6', u'port': u'6881', u'seeder': u'true', u'uploadSpeed': u'0'>,   u'bitfield': u'ffffeff0fffffffbfffffff9fffffcfff7f4ffff', u'downloadSpeed': u'8654', u'ip': u'10.0.0.30', u'peerChoking': u'false', u'peerId': u'bittorrent client758', u'port': u'37842', u'seeder': u'false', u'uploadSpeed': u'6890'>]> 

Пример XML-RPC

>>> import xmlrpclib >>> from pprint import pprint >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> r = s.aria2.getPeers('2089b05ecca3d829') >>> pprint(r) [  'bitfield': 'ffffffffffffffffffffffffffffffffffffffff', 'downloadSpeed': '10602', 'ip': '10.0.0.9', 'peerChoking': 'false', 'peerId': 'aria2%2F1%2E10%2E5%2D%87%2A%EDz%2F%F7%E6', 'port': '6881', 'seeder': 'true', 'uploadSpeed': '0'>,   'bitfield': 'ffffeff0fffffffbfffffff9fffffcfff7f4ffff', 'downloadSpeed': '8654', 'ip': '10.0.0.30', 'peerChoking': 'false', 'peerId': 'bittorrent client758', 'port': '37842', 'seeder': 'false, 'uploadSpeed': '6890'>] 

aria2. getServers ( [ secret, ] gid ) ¶

Этот метод возвращает текущие подключенные HTTP(S)/FTP/SFTP-серверы загрузки, которая обозначена gid (строка). Ответ — это массив структур, которые содержат следующие ключи. Значения являются строками.

Индекс файла, начинается с 1, в том же порядке, как файлы появляются в многофайловом metalink.

Список структур, которые содержат следующие ключи.

Это URI в настоящее время используется для загрузки. Если происходит перенаправление, currentUri и uri могут отличаться.

Скорость загрузки (байт/сек)

Пример JSON-RPC

>>> import urllib2, json >>> from pprint import pprint >>> jsonreq = json.dumps('jsonrpc':'2.0', 'id':'qwer', . 'method':'aria2.getServers', . 'params':['2089b05ecca3d829']>) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> pprint(json.loads(c.read()))   u'jsonrpc': u'2.0', u'result': [  u'servers': [  u'downloadSpeed': u'10467', u'uri': u'http://example.org/file'>]>]> 

Пример XML-RPC

>>> import xmlrpclib >>> from pprint import pprint >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> r = s.aria2.getServers('2089b05ecca3d829') >>> pprint(r) [  'servers': [  'downloadSpeed': '20285', 'uri': 'http://example.org/file'>]>] 

aria2. tellActive ( [ secret ] [ , keys ] ) ¶

Этот метод возвращает список активных загрузок. Ответ — это массив таких же структур, возвращаемых методом aria2.tellStatus() . За разъяснениями о параметре keys, обратитесь к методу aria2.tellStatus() .

aria2. tellWaiting ( [ secret, ] offset, num [ , keys ] ) ¶

Этот метод возвращает список ожидающих загрузок, включая приостановленные загрузки. offset является целым числом и указывает смещение, начиная от ожидающей загрузки. num является целым числом и указывает максимальное число возвращаемых загрузок. За разъяснениями о параметре keys, обратитесь к методу aria2.tellStatus() .

Если смещение положительное целое число, то этот метод возвращает загрузки в диапазоне [offset, offset*+*num).

offset может быть отрицательным целым числом. offset == -1 указывает на последнею загрузку, которая ожидает в очереди, а offset == -2 указывает на загрузку перед последней, и так далее. Тогда загрузки в ответе находятся в обратном порядке.

Например, допустим, что есть три загрузки «A»,»B» и «C», в этом порядке, которые ожидают. aria2.tellWaiting(0, 1) возвратит [«A»] . aria2.tellWaiting(1, 2) возвратит [«B», «C»] . aria2.tellWaiting(-1, 2) возвратит [«C», «B»] .

Ответ — это массив таких же структур, возвращаемых методом aria2.tellStatus() .

aria2. tellStopped ( [ secret, ] offset, num [ , keys ] ) ¶

Этот метод возвращает список остановленных загрузок. offset является целым числом и указывает смещение, начиная от последней, недавно остановленной, загрузки. num является целым числом и указывает максимальное число возвращаемых загрузок. За разъяснениями о параметре keys, обратитесь к методу aria2.tellStatus() .

offset и num имеют такую же семантику, как описано в методе aria2.tellWaiting() .

Ответ — это массив таких же структур, возвращаемых методом aria2.tellStatus() .

Этот метод меняет позицию загрузки, которая в очереди обозначена gid. pos является целым числом. how является строкой. Если how — POS_SET , то это переместит загрузку на позицию, относительно начала очереди. Если how — POS_CUR , это переместит загрузку на позицию, относительно текущей позиции. Если how — POS_END , это переместит загрузку на позицию, относительно конца очереди. Если целевая позиция меньше чем 0 или за пределами конца очереди, это переместит загрузку в начало или конец очереди соответственно. Ответ является целым числом, обозначающее получающуюся позицию.

Например, если текущей позицией GID#2089b05ecca3d829 является 3, то aria2.changePosition(‘2089b05ecca3d829’, -1, ‘POS_CUR’) изменит позицию на 2. Дополнительно aria2.changePosition(‘2089b05ecca3d829’, 0, ‘POS_SET’) изменит позицию на 0 (начало очереди).

Следующие примеры перемещают загрузку GID#2089b05ecca3d829 в начало очереди.

Пример JSON-RPC

>>> import urllib2, json >>> from pprint import pprint >>> jsonreq = json.dumps(‘jsonrpc’:‘2.0’, ‘id’:‘qwer’, . ‘method’:‘aria2.changePosition’, . ‘params’:[‘2089b05ecca3d829’, 0, ‘POS_SET’]>) >>> c = urllib2.urlopen(‘http://localhost:6800/jsonrpc’, jsonreq) >>> pprint(json.loads(c.read()))

Пример XML-RPC

>>> import xmlrpclib >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> s.aria2.changePosition('2089b05ecca3d829', 0, 'POS_SET') 0 

aria2. changeUri ( [ secret, ] gid, fileIndex, delUris, addUris [ , position ] ) ¶

Этот метод удаляет URI в delUris из загрузки и добавляет URI в addUris к загрузке, которая обозначена gid. delUris и addUris являются списками строк. Загрузка может содержать несколько файлов и URI прилагаются к каждому файлу. fileIndex используется, чтобы выбрать файл для удаления/подключения заданных URI. fileIndex начинается с 1. position используется для указания, куда будут вставлены URI в существующем списке ожидающих URI. position начинается с 0. Когда position пропущено, URI добавляются в конец списка. Этот метод сначала выполняет удаление, а потом добавление. position это позиция после URI, которые будут удалены, а не позиция, когда метод вызывается. При удалении URI, если одинаковые URI существуют в загрузке, только один из них будет удален, для каждого URI в delUris. Другими словами, если есть три URI http://example.org/aria2 и вы хотите удалить их все, то вы должны указать (по крайней мере) 3 http://example.org/aria2 в delUris. Этот метод возвращает список, который содержит два целых числа. Первое — количество удаленных URI. Второе — количество добавленных URI.

Следующие примеры добавляют URI http://example.org/file к файлу с индексом 1 , принадлежащий загрузке GID#2089b05ecca3d829.

Пример JSON-RPC

>>> import urllib2, json >>> from pprint import pprint >>> jsonreq = json.dumps(‘jsonrpc’:‘2.0’, ‘id’:‘qwer’, . ‘method’:‘aria2.changeUri’, . ‘params’:[‘2089b05ecca3d829’, 1, [], [‘http://example.org/file’]]>) >>> c = urllib2.urlopen(‘http://localhost:6800/jsonrpc’, jsonreq) >>> pprint(json.loads(c.read()))

Пример XML-RPC

>>> import xmlrpclib >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> s.aria2.changeUri('2089b05ecca3d829', 1, [], ['http://example.org/file']) [0, 1] 

aria2. getOption ( [ secret, ] gid ) ¶

Этот метод возвращает параметры загрузки, которая обозначена gid. Ответ — это структура, где ключи являются именами параметров. Значения являются строками. Обратите внимание, что этот метод не возвращает параметры, которые не имеют значение по умолчанию и не были заданы параметрами командной строки, конфигурационными файлами или RPC-методами.

Следующие примеры получают параметры загрузки GID#2089b05ecca3d829.

Пример JSON-RPC

>>> import urllib2, json >>> from pprint import pprint >>> jsonreq = json.dumps('jsonrpc':'2.0', 'id':'qwer', . 'method':'aria2.getOption', . 'params':['2089b05ecca3d829']>) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> pprint(json.loads(c.read()))   u'jsonrpc': u'2.0', u'result':  u'allow-piece-length-change': u'false', u'always-resume': u'true', u'async-dns': u'true', . 

Пример XML-RPC

>>> import xmlrpclib >>> from pprint import pprint >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> r = s.aria2.getOption('2089b05ecca3d829') >>> pprint(r)   'allow-piece-length-change': 'false', 'always-resume': 'true', 'async-dns': 'true', . 

aria2. changeOption ( [ secret, ] gid, options ) ¶

Этот метод изменяет динамически параметры загрузки, которая обозначена gid (строка). options является структурой. Доступные параметры перечисленны в подразделе Входной файл, исключая следующие:

За исключением следующих параметров, изменение других параметров активной загрузки заставляет их перезапуститься (самим перезапуском управляет aria2, и никакого вмешательства пользователя не требуется):

  • bt-max-peers
  • bt-request-peer-speed-limit
  • bt-remove-unselected-file
  • force-save
  • max-download-limit
  • max-upload-limit

Этот метод возвращает OK , в случае успеха.

Следующие примеры устанавливают параметр max-download-limit в 20K для загрузки GID#2089b05ecca3d829.

Пример JSON-RPC

>>> import urllib2, json >>> from pprint import pprint >>> jsonreq = json.dumps(‘jsonrpc’:‘2.0’, ‘id’:‘qwer’, . ‘method’:‘aria2.changeOption’, . ‘params’:[‘2089b05ecca3d829’, . ‘max-download-limit’:’10K’>]>) >>> c = urllib2.urlopen(‘http://localhost:6800/jsonrpc’, jsonreq) >>> pprint(json.loads(c.read()))

Пример XML-RPC

>>> import xmlrpclib >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> s.aria2.changeOption('2089b05ecca3d829', 'max-download-limit':'20K'>) 'OK' 

aria2. getGlobalOption ( [ secret ] ) ¶

Этот метод возвращает глобальные параметры. Ответ является структурой. Её ключи — это названия параметров. Значения являются строками. Обратите внимание, что этот метод не возвращает параметры, которые не имеют значение по умолчанию и не были заданы параметрами командной строки, конфигурационными файлами или RPC-методами. Так как глобальные параметры используются в качестве шаблона для вновь добавляемых загрузок, ответ содержит ключи возвращаемые методом aria2.getOption() .

aria2. changeGlobalOption ( [ secret, ] options ) ¶

Этот метод изменяет динамически глобальные параметры. options является структурой. Доступны следующие параметры:

  • bt-max-open-files
  • download-result
  • keep-unfinished-download-result
  • log
  • log-level
  • max-concurrent-downloads
  • max-download-result
  • max-overall-download-limit
  • max-overall-upload-limit
  • optimize-concurrent-downloads
  • save-cookies
  • save-session
  • server-stat-of

В дополнение к ним, параметры перечисленные в подразделе Входной файл, исключая следующие параметры: checksum , index-out , out , pause , select-file .

C параметром log , вы можете динамически начинать вести журнал событий или изменять файл журнала событий. Чтобы остановить ведение журнала событий, укажите пустую строку («») в качестве значения параметра. Обратите внимание, что файл журнала событий всегда открыт в режиме добавления. Этот метод возвращает OK , в случае успеха.

aria2. getGlobalStat ( [ secret ] ) ¶

Этот метод возвращает глобальную статистику по скорости загрузки и скорости отдачи. Ответ является структурой и содержит следующие ключи. Значения являются строками.

Общая скорость загрузки (байт/сек).

Общая скорость отдачи (байт/сек).

Количество активных загрузок.

Количество ожидающих загрузок.

Количество остановленных загрузок в текущей сессии. Это значение ограничено параметром —max-download-result .

Количество остановленных загрузок в текущей сессии и не ограничено параметром —max-download-result .

Пример JSON-RPC

>>> import urllib2, json >>> from pprint import pprint >>> jsonreq = json.dumps('jsonrpc':'2.0', 'id':'qwer', . 'method':'aria2.getGlobalStat'>) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> pprint(json.loads(c.read()))   u'jsonrpc': u'2.0', u'result':  u'numActive': u'2', u'numStopped': u'0', u'numWaiting': u'0', u'uploadSpeed': u'0'>> 

Пример XML-RPC

>>> import xmlrpclib >>> from pprint import pprint >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> r = s.aria2.getGlobalStat() >>> pprint(r)   'numActive': '2', 'numStopped': '0', 'numWaiting': '0', 'uploadSpeed': '0'> 

aria2. purgeDownloadResult ( [ secret ] ) ¶

Этот метод очищает, для освобождения памяти, завершенные/ошибка/удаленные загрузки. Метод возвращает OK .

aria2. removeDownloadResult ( [ secret, ] gid ) ¶

Этот метод удаляет из памяти завершенную/ошибка/удаленную загрузку, которая обозначена gid. Метод возвращает OK , в случае успеха.

Следующие примеры удаляют результат загрузки GID#2089b05ecca3d829.

Пример JSON-RPC

>>> import urllib2, json >>> from pprint import pprint >>> jsonreq = json.dumps(‘jsonrpc’:‘2.0’, ‘id’:‘qwer’, . ‘method’:‘aria2.removeDownloadResult’, . ‘params’:[‘2089b05ecca3d829’]>) >>> c = urllib2.urlopen(‘http://localhost:6800/jsonrpc’, jsonreq) >>> pprint(json.loads(c.read()))

Пример XML-RPC

>>> import xmlrpclib >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> s.aria2.removeDownloadResult('2089b05ecca3d829') 'OK' 

aria2. getVersion ( [ secret ] ) ¶

Этот метод возвращает версию aria2 и список включенных возможностей. Ответ является структурой и содержит следующие ключи.

Номер версии aria2 в виде строки.

Список включенных возможностей. Каждая возможность задаётся в виде строки.

Пример JSON-RPC

>>> import urllib2, json >>> from pprint import pprint >>> jsonreq = json.dumps('jsonrpc':'2.0', 'id':'qwer', . 'method':'aria2.getVersion'>) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> pprint(json.loads(c.read()))   u'jsonrpc': u'2.0', u'result':  u'BitTorrent', u'Firefox3 Cookie', u'GZip', u'HTTPS', u'Message Digest', u'Metalink', u'XML-RPC'], u'version': u'1.11.0'>> 

Пример XML-RPC

>>> import xmlrpclib >>> from pprint import pprint >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> r = s.aria2.getVersion() >>> pprint(r)   'BitTorrent', 'Firefox3 Cookie', 'GZip', 'HTTPS', 'Message Digest', 'Metalink', 'XML-RPC'], 'version': '1.11.0'> 

aria2. getSessionInfo ( [ secret ] ) ¶

Этот метод возвращает информацию о сессии. Ответ является структурой и содержит следующие ключи.

ID сессии, которое генерируется каждый раз, при запуске aria2.

Пример JSON-RPC

>>> import urllib2, json >>> from pprint import pprint >>> jsonreq = json.dumps('jsonrpc':'2.0', 'id':'qwer', . 'method':'aria2.getSessionInfo'>) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> pprint(json.loads(c.read()))   u'jsonrpc': u'2.0', u'result': > 

Пример XML-RPC

>>> import xmlrpclib >>> s = xmlrpclib.ServerProxy(‘http://localhost:6800/rpc’) >>> s.aria2.getSessionInfo()
aria2. shutdown ( [ secret ] ) ¶

Этот метод закрывает aria2. Метод возвращает OK .

aria2. forceShutdown ( [ secret ] ) ¶

Этот метод закрывает aria2. Метод действует подобно aria2.shutdown() , за исключением того, что метод выполняется без выполнения каких-либо действий, которые требуют времени, например связь с BitTorrent-трекерами для отмены регистрации загрузок. Метод возвращает OK .

aria2. saveSession ( [ secret ] ) ¶

Этот метод сохраняет текущею сессию в файл, указанный в параметре —save-session . Метод возвращает OK если это удаётся.

system. multicall ( methods ) ¶

Этот метод объединяет несколько вызовов методов в один запрос. methods является массив структур. Структуры содержат два ключа поля: methodName и params . methodName — это имя вызываемого метода, а params — содержит параметры вызова метода. Метод возвращает массив ответов. Элементы массива будут одним из двух: массивом из одного элемента, который содержит возвращаемое значение, для вызываемого метода или структурой ошибочного элемента, если вызов объединённого метода завершился неудачно.

В следующих примерах мы добавляем 2 загрузки. Первая — http://example.org/file и вторая — один файл file.torrent .

Пример JSON-RPC

>>> import urllib2, json, base64 >>> from pprint import pprint >>> jsonreq = json.dumps(‘jsonrpc’:‘2.0’, ‘id’:‘qwer’, . ‘method’:‘system.multicall’, . ‘params’:[[‘methodName’:‘aria2.addUri’, . ‘params’:[[‘http://example.org’]]>, . ‘methodName’:‘aria2.addTorrent’, . ‘params’:[base64.b64encode(open(‘file.torrent’).read())]>]]>) >>> c = urllib2.urlopen(‘http://localhost:6800/jsonrpc’, jsonreq) >>> pprint(json.loads(c.read()))

JSON-RPC дополнительно поддерживает пакетные запросы, которые описываются в спецификации JSON-RPC 2.0:

>>> jsonreq = json.dumps(['jsonrpc':'2.0', 'id':'qwer', . 'method':'aria2.addUri', . 'params':[['http://example.org']]>, . 'jsonrpc':'2.0', 'id':'asdf', . 'method':'aria2.addTorrent', . 'params':[base64.b64encode(open('file.torrent').read())]>]) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> pprint(json.loads(c.read())) [, ] 

Пример XML-RPC

>>> import xmlrpclib >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> mc = xmlrpclib.MultiCall(s) >>> mc.aria2.addUri(['http://example.org/file']) >>> mc.aria2.addTorrent(xmlrpclib.Binary(open('file.torrent', mode='rb').read())) >>> r = mc() >>> tuple(r) ('2089b05ecca3d829', 'd2703803b52216d1') 

system. listMethods ( ) ¶

Этот метод возвращает все доступные RPC-методы в массиве строк. В отличие от других методов, этот метод не требует секретный маркер. Это безопасно, потому что этот метод просто возвращает названия доступных методов.

Пример JSON-RPC

>>> import urllib2, json >>> from pprint import pprint >>> jsonreq = json.dumps('jsonrpc':'2.0', 'id':'qwer', . 'method':'system.listMethods'>) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> pprint(json.loads(c.read()))   u'jsonrpc': u'2.0', u'result': [u'aria2.addUri', u'aria2.addTorrent', . 

Пример XML-RPC

>>> import xmlrpclib >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> s.system.listMethods() ['aria2.addUri', 'aria2.addTorrent', . 

system. listNotifications ( ) ¶

Этот метод возвращает все доступные RPC-методы в массиве строк. В отличие от других методов, этот метод не требует секретный маркер. Это безопасно, потому что этот метод просто возвращает названия доступных уведомлений.

Пример JSON-RPC

>>> import urllib2, json >>> from pprint import pprint >>> jsonreq = json.dumps('jsonrpc':'2.0', 'id':'qwer', . 'method':'system.listNotifications'>) >>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) >>> pprint(json.loads(c.read()))   u'jsonrpc': u'2.0', u'result': [u'aria2.onDownloadStart', u'aria2.onDownloadPause', . 

Пример XML-RPC

>>> import xmlrpclib >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> s.system.listNotifications() ['aria2.onDownloadStart', 'aria2.onDownloadPause', . 

Обработка ошибок¶

Через JSON-RPC, aria2 возвращает JSON-объект, который содержит код ошибки в code и сообщение об ошибке в message .

Через XML-RPC, aria2 возвращает faultCode=1 и сообщение об ошибке в faultString .

Параметры¶

Такие же параметры, что доступны для —input-file . Смотрите подраздел Входной файл для полного списка параметров.

В структуре, имя элемента — это имя параметра (без — ), а значение элемента — аргумент в виде строки.

Пример JSON-RPC¶
'split':'1', 'http-proxy':'http://proxy/'> 
Пример XML-RPC¶
   split  1    http-proxy  http://proxy/    

Параметры header и index-out допускают нескольких определений в командной строке. Поскольку имя должно быть уникальным в структуре (многие реализации библиотеки XML-RPC используют хэш или словарь для структуры), одной строки недостаточно. Для преодоления этого ограничения, вы можете использовать массив в качестве значения, а также строку.

Пример JSON-RPC¶
'header':['Accept-Language: ja', 'Accept-Charset: utf-8']> 
Пример XML-RPC¶
   header    Accept-Language: ja   Accept-Charset: utf-8       

Следующий пример добавляет загрузку с двумя параметрами: dir и header . Параметр header требует 2 значения, поэтому используется список:

>>> import xmlrpclib >>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') >>> opts = dict(dir='/tmp', . header=['Accept-Language: ja', . 'Accept-Charset: utf-8']) >>> s.aria2.addUri(['http://example.org/file'], opts) '1' 

JSON-RPC используя HTTP GET¶

JSON-RPC-интерфейс также поддерживает запросы через HTTP GET. Схема кодирования в GET параметров основанных на JSON-RPC через HTTP Спецификация [2008-1-15(RC1)]. Кодирование параметров через GET следующие:

/jsonrpc?method=METHOD_NAME&id=ID¶ms=BASE64_ENCODED_PARAMS

method и id всегда обрабатывается как JSON-строка и они должны быть в кодировке UTF-8.

Например, закодированная строка aria2.tellStatus(‘2089b05ecca3d829′) с id=’foo’ выглядит так:

/jsonrpc?method=aria2.tellStatus&id=foo¶ms=WyIyMDg5YjA1ZWNjYTNkODI5Il0%3D

Параметр params — это JSON-массив в Base64-кодировке, который обычно появляется в атрибуте params в JSON-RPC-запросе объекта. В примере выше, params — [«2089b05ecca3d829»] , следовательно:

["2089b05ecca3d829"] --(Base64)--> WyIyMDg5YjA1ZWNjYTNkODI5Il0= --(Кодирование процентом)--> WyIyMDg5YjA1ZWNjYTNkODI5Il0%3D 

JSON-RPC-интерфейс также поддерживает JSONP. Вы можете определить функцию обратного вызова в параметре jsoncallback :

/jsonrpc?method=aria2.tellStatus&id=foo¶ms=WyIyMDg5YjA1ZWNjYTNkODI5Il0%3D&jsoncallback=cb

Для пакетных запросов, параметры method и id не должны быть указаны. Полный запрос должен быть определен в параметре params . Например, пакетный запрос:

['jsonrpc':'2.0', 'id':'qwer', 'method':'aria2.getVersion'>, 'jsonrpc':'2.0', 'id':'asdf', 'method':'aria2.tellActive'>] 

должен кодироваться так:

/jsonrpc?params=W3sianNvbnJwYyI6ICIyLjAiLCAiaWQiOiAicXdlciIsICJtZXRob2QiOiAiYXJpYTIuZ2V0VmVyc2lvbiJ9LCB7Impzb25ycGMiOiAiMi4wIiwgImlkIjogImFzZGYiLCAibWV0aG9kIjogImFyaWEyLnRlbGxBY3RpdmUifV0%3D

JSON-RPC через WebSocket¶

JSON-RPC через WebSocket использует тот же самый метод сигнатур и формат ответа как у JSON-RPC через HTTP. Поддерживаемый WebSocket, версия 13, детально описан в RFC 6455.

Для отправки RPC-запроса на RPC-сервер, надо отправлять преобразованную в последовательную форму JSON-строку в текстовом фрейме. Ответ от RPC-сервера также доставляется в текстовом фрейме.

Уведомления¶

RPC-сервер может отправлять уведомления клиенту. Уведомления являются однонаправленными, поэтому клиент, который получает уведомление, не должен отвечать на него. Метод сигнатуры уведомления такой же, как нормальный запрос метода, но отсутствует ключ id. Значение, связанное с ключом params, является данными, которые переносит это уведомление. Формат этого значения варьируется в зависимости от метода уведомления. Определены следующие методы уведомления.

aria2. onDownloadStart ( event ) ¶

Это уведомление будет оправлено, когда загрузка запущена. Параметр event имеет тип структура и содержит следующие ключи. Ключ имеет тип строка.

aria2. onDownloadPause ( event ) ¶

Это уведомление будет оправлено, когда загрузка приостановлена. event — такая же структура, как параметр event в методе aria2.onDownloadStart() .

aria2. onDownloadStop ( event ) ¶

Это уведомление будет оправлено, когда загрузка остановлена пользователем. event — такая же структура, как параметр event в методе aria2.onDownloadStart() .

aria2. onDownloadComplete ( event ) ¶

Это уведомление будет оправлено, когда загрузка завершена. Для BitTorrent-загрузок, это уведомление отправляется, когда загрузка завершена и сидирование окончено. event — такая же структура, как параметр event в методе aria2.onDownloadStart() .

aria2. onDownloadError ( event ) ¶

Это уведомление будет оправлено, когда загрузка остановлена из-за ошибки. event — такая же структура, как параметр event в методе aria2.onDownloadStart() .

aria2. onBtDownloadComplete ( event ) ¶

Это уведомление будет оправлено, когда torrent-загрузка завершена, но сидирование продолжается. event — такая же структура, как параметр event в методе aria2.onDownloadStart() .

Пример кода XML-RPC-клиента¶

Следующий Ruby-скрипт добавляет http://localhost/aria2.tar.bz2 в aria2c (работает на localhost) с параметром —dir=/downloads, и отображает RPC-ответ:

#!/usr/bin/env ruby require 'xmlrpc/client' require 'pp' client=XMLRPC::Client.new2("http://localhost:6800/rpc") options= "dir" => "/downloads" > result=client.call("aria2.addUri", [ "http://localhost/aria2.tar.bz2" ], options) pp result 

Если вы любитель Python, то можете использовать xmlrpclib (Python3 использует xmlrpc.client) для взаимодействия с aria2:

import xmlrpclib from pprint import pprint s = xmlrpclib.ServerProxy("http://localhost:6800/rpc") r = s.aria2.addUri(["http://localhost/aria2.tar.bz2"], "dir":"/downloads">) pprint(r) 

РАЗНОЕ¶

Консольный индикатор¶

При загрузке файлов, aria2 отображает индикатор на консоль, для отображения прогресса загрузок. Консольный индикатор имеет вид:

[#2089b0 400.0KiB/33.2MiB(1%) CN:1 DL:115.7KiB ETA:4m51s] 

Этот раздел описывает значение чисел и строк.

Первые 6 символов GID в виде шестнадцатеричной строки. GID является уникальным ID (внутренний в aria2) для каждой загрузки. GID особенно полезен при взаимодействии с aria2, используя RPC-интерфейс.

Загруженный размер, общий размер файла и процент выполнения загрузки. Если используется —select-file , то значение является суммой выбранных файлов.

Рейтинг, когда aria2 сидирует завершённый торрент.

Количество соединений, установленных aria2.

Количество сидов, к которым сейчас подключена aria2.

Скорость загрузки (байт/сек).

Скорость выгрузки (байт/сек) и количество выгруженных байт.

Ожидаемое время завершения загрузки.

При больше чем 1-ой загрузке, выполняемой в данный момент, часть информации, описанной выше будет опущена, чтобы показать информации о нескольких загрузках. А общая скорость загрузки и выгрузки будет показана в начале строки.

Когда aria2 выделяет место под файл или проверяет контрольную сумму, то при этом дополнительно отображается прогресс этих операций:

GID, уже выделенный размер и общий размер в байтах.

GID, уже проверенный размер и общий размер в байтах.

Aria2 как торрент-клиент

Многим знакома консольная программа для загрузки файлов aria2 , но обычно ее воспринимают как аналог wget и не более.

Если же речь заходит о консольных торрент-клиентах, как правило, вспоминают лишь rtorrent и интерфейсы к нему. Меж тем aria2 — отличный инструмент для тех, кто предпочитает «включить и забыть» и не уделять торрентам слишком много времени.

Ниже описаны некоторые тонкости применения aria2 именно в роли торрент-клиента. Но чаще всего не требуется ничего, кроме простой команды aria2c ФАЙЛ.torrent . С простого и начнем.

1. Самый простой случай: один торрент

Распространенный вариант: надо просто скачать файл или группу файлов и остаться на раздаче до приемлемого рейтинга (не забывайте, что по протоколу BitTorrent файлы мы качаем друг у друга и хорошим тоном считается отдать хотя бы столько же, сколько скачал), но не планируем ни обновлять содержимое, как это практикуется в раздачах сериалов, ни оставаться на «вечной» раздаче, как многие поступают с образами любимых дистрибутивов. В этом случае от пользователя требуется лишь одна команда.

Она строится по принципу aria2c —dir=[/СЮДА/СОХРАНЯТЬ/ФАЙЛ/] АДРЕС_ФАЙЛА.torrent (вместо —dir= можно указывать просто -d ), например: aria2c -d /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/downloads/ http://www.clearbits.net/get/206-dimensions—a-walk-through-mathematics.torrent (это научно-популярный анимационный фильм, посвященный измерениям; есть русские субтитры; распространяется под лицензией Creative Commons BY-NC-ND , то есть его можно копировать и распространять при условии указания авторства, но нельзя использовать в коммерческих целях и как основу для производных работ).

Путь для сохранения файлов ( —dir или -d ) можно не указывать, в таком случае программа сохранит файлы в текущий каталог. Неважно, где находится файл *.torrent — локальный файл сразу будет поставлен на закачку, а если адрес файла — это ссылка на http или ftp, то aria2 сначала скачает файл *.torrent , а затем сама поставит его на закачку.

Когда все будет загружено, начнется раздача. По умолчанию она продолжается до рейтинга 1, то есть отдано будет ровно столько же, сколько скачано. Если есть желание отдать больше — нет проблем, добавьте параметр —ratio=10.0 и порадуйте еще десять человек.

Принудительно включать или выключать DHT , как правило, не требуется. По умолчанию этот параметр активен, а если в торрент-файле с закрытого трекера есть ключ private , программа сама отключит DHT. Кстати, о закрытых трекерах: например, rutracker.org не дает скачивать торрент-файлы по прямой ссылке, только браузером со страницы раздачи. Мне не удалось найти способ загружать их сразу с помощью aria2 , приходится скачивать браузером и «скармливать» программе уже локально сохраненные файлы.

2. Усложним задачу: манипулируем файлами в раздаче

Возможно, вам не требуются все файлы в раздаче. В этом случае нам помогут параметры —show-files (показать файлы в раздаче) и —select-file (выбрать файлы по номерам-индексам).

Давайте опять воспользуемся тем же примером. Запустим aria2 c параметром —show-files и для удобства чтения направим вывод в less : aria2c —show-files «mathematical imagery — dimensions.torrent» | less (у меня файл .torrent уже находился в каталоге, в который будет загружаться раздача). В списке файлов обнаруживаем помимо видео еще и субтитры на нескольких языках.

Укажем программе индексы, соответствующие видеофайлам и русским субтитрам: aria2c —select-file=1,12,14,25,27,38,40,51,53,64,66,77,79,90,92,103,105,116 «mathematical imagery — dimensions.torrent» и не будем загружать лишнего (для идущих подряд индексов можно указывать диапазоны, например 5-8 ; особенно полезно, когда надо скачать все файлы, кроме одного-двух ненужных).

Те же индексы помогут переименовать отдельные файлы или разместить их в другом каталоге. Попробуем переименовать два первых файла в нашем примере: -O 1=1.mov -O 12=1.srt . Обратите внимание: при этом файлы будут записаны не в каталог Mathematical Imagery — Dimensions/Content/Dimensions_1_English , как это предполагалось в раздаче, а в каталог, указанный в параметре —dir или, если он не задан — в текущий каталог.

Если в раздаче один файл, можно таким же образом указывать путь и/или имя файла, сразу указав индекс 1. Например: aria2c —dir=~/downloads/pmagic -O 1=pmagic.iso «http://linuxtracker.org/download.php?id=0e992c90a824d7fc7f7120dd8f34345aecd8e739&f=pmagic_2011_12_30.iso.torrent» — файл pmagic_2011_12_30.iso будет помещен в подкаталог ~/downloads/pmagic/ и переименован в pmagic.iso . Не перепутайте параметр -O и -o . Даже если в раздаче лишь один файл, параметр -o укажет имя для файла *.torrent , а не для загружаемых торрентом файлов.

3. Любителям сериалов

На некоторых торрент-трекерах не заводят раздачу под каждую серию, а в одной теме обновляют торрент по мере появления новых серий. То есть приходится скачать торрент, раздавать его, потом скачать его заново, проверить контрольные суммы предыдущих файлов (бывает, изменяется дорожка с переводом или заменяют «битые» файлы), скачать новые туда же и опять продолжить раздавать. Для проверки и докачки нужно добавить параметр —check-integrity=true , а если лень писать так много, то просто -V .

Тот же параметр пригодится, если надо заново встать на раздачу ранее завершенной загрузки. Если же объем проверяемых файлов слишком велик, чтобы их снова проверять, —bt-seed-unverified=true — ваш выбор. Раздача запустится без проверки контрольных сумм.

Короткого имени для этого параметра, к сожалению, нет. Но если установлен пакет bash-completion , то можно добавить правила автодополнения для длинных параметров aria2 . Для начала проверьте, возможно, они уже установлены: complete | grep aria . Если появилась строчка вида complete -F _aria2c aria2c , то длинные параметры вам уже не страшны.

Если нет, то надо скачать файл, скопировать его в каталог, в котором bash_completion ищет правила автодополнения (скорее всего /etc/bash_completion.d/ ) и дать команду . /etc/bash_completion . Если не помогло, почитайте документацию на сайте bash-completion . Возможно, не созданы какие-то конфигурационные файлы или в них надо изменить некоторые параметры.

И тут мы подходим к самому интересному — двум важнейшим файлам в жизни нашей «арии»: входному и конфигурационному.

4. Если торрентов много: входной файл

Если торрентов много, запускать загрузки в отдельных сессиях было бы слишком утомительно. Но, к счастью, aria2 может получать адреса загружаемых файлов не только из командной строки, но и из текстового файла. Можно, например, создать в домашнем каталоге файл ariainput и добавить в автозагрузку команду aria2c -i /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/ariainput , тогда при старте системы aria2 будет автоматически скачивать и раздавать все прописанные там торренты.

Файл не обязательно должен быть один — создавайте коллекции на все случаи жизни и указывайте при запуске программы -i ФАЙЛ или —input-file=ФАЙЛ . Например, можно сделать отдельные файлы для срочных одноразовых загрузок и «вечных» раздач, для разных типов контента, для разных трекеров, для чего угодно. Никаких ограничений, это же просто текстовые файлы.

Каждая строка файла воспринимается как параметры, передаваемые из командной строки. То есть можно не просто перечислить адреса, но и указать для каждого персонально практически любые параметры: путь для сохранения, ограничение скорости, время раздачи или соотношение скачанного к отданному, ограничение на количество соединений и много что еще.

Краткую выжимку по самым нужным параметрам из объемистой man-страницы aria2 я приведу в конце. Параметры не нужно мешать в кучу с адресами, файл оформляется вполне удобочитаемо: после строки с адресом торрента пишите по одному параметру в каждой следующей строке с пробелом в начале и без дефисов ( — ), примерно вот так:

http://www.clearbits.net/get/206-dimensions---a-walk-through-mathematics.torrent dir=/home/имя_пользователя/downloads check-integrity=true seed-ratio=0.0

( 0.0 в параметре рейтинга означает «вечную раздачу»)

Если идентичные файлы раздаются с нескольких трекеров, можно писать в одной строке несколько адресов, разделяя их табуляцией.

Так как aria2 — универсальная программа, можно в этом же файле указывать не только торренты, но и загрузки по http, ftp или metalink (можно даже загружать один файл по нескольким протоколам), что выгодно отличает этот простой текстовый «интерфейс» от большинства торрент-клиентов. Существуют и графические, и веб-интерфейсы к программе, но, на мой взгляд, недостаточно удачные. Эта задача еще ждет своих героев. Пока что проще накидать ссылок в файл в любимом текстовом редакторе.

5. Еще немного автоматизации: файл конфигурации

По умолчанию aria2 ищет файл конфигурации в домашнем каталоге пользователя по адресу: /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.aria2/aria2.conf (если его нет, создайте его). Чтобы не вводить каждый раз наиболее употребительные параметры, их можно указать здесь, а в отдельных загрузках указывать только параметры, отличающиеся от назначенных по умолчанию. На каждой строчке пишется параметр=значение , в длинной форме, но без двух дефисов, как во входном файле (отступы не нужны). Комментарии можно писать в строках, начинающихся со знака # . Вот пример из man aria2c :

listen-port=60000 dht-listen-port=60000 seed-ratio=1.0 max-upload-limit=50K

Можно даже иметь несколько конфигурационных файлов и изменять путь к ним с помощью параметра —conf-path при запуске программы. Иногда удобно для отдельной загрузки указать —no-conf , чтобы aria2 не читала файл конфигурации, и задать параметры вручную.

6. Как еще можно упростить себе жизнь?

Как известно, лучший каталогизатор — это продуманная организация файловой системы. Но организовывать структуру каталогов тоже можно по-разному. Можно для каждого торрента сразу прописывать пути загрузки, но если позволяет размер раздела, то я предлагаю поступить наоборот и устроить большую свалку: прописать в конфигурационном файле единый каталог для загрузок.

Как бардак поможет порядку? Вот так: рассортировывать по каталогам проще уже загруженные файлы. Для этого не нужно копировать и перемещать терабайты информации, ведь у нас есть замечательный инструмент — символические ссылки (симлинки). Команда ln -s или даже перетаскивание в файловом менеджере помогут раскидать ссылки на файлы по упорядоченной и логичной системе каталогов (в принципе, можно даже автоматизировать скриптом сортировку по каталогам в зависимости от расширения файлов).

Кроме того, это упростит переименование файлов (я, например, предпочитаю переименовывать видеофайлы сериалов так, чтобы номер серии был в конце имени файла — тогда SMplayer автоматически добавляет их все в плейлист, а массовое переименование удобнее делать с помощью rename или графических утилит, чем расписывать для каждого файла по индексу).

7. Параметры

И напоследок — обещанный краткий список параметров, полезных при использовании aria2 в качестве торрент-клиента.

  • -d, —dir=/СЮДА/СОХРАНЯТЬ/ФАЙЛ/ — каталог для загрузки. Сюда же сохраняется файл *.torrent (если надо сохранить его в другом месте, дополнительно укажите -o /СЮДА/СОХРАНЯТЬ/ФАЙЛ.torrent ). Если не указано, все загружается в текущий каталог.
  • -i, —input-file=ФАЙЛ — входной файл со списком загрузок.
  • -j, —max-concurrent-downloads=ЧИСЛО — максимум параллельных загрузок. 5 по умолчанию.
  • -V, —check-integrity[=true|false] — проверять контрольную сумму перед продолжением загрузки и раздачей.
  • -S, —show-files — показать список файлов, ничего не загружать.
  • —select-file=ИНДЕКС — выбрать один или несколько файлов из раздачи.
  • —bt-enable-lpd[=true|false] — включить поиск локальных пиров. Не работает для торрентов с ключом private . Для остальных может сильно увеличить скорость загрузки.
  • —bt-max-peers=ЧИСЛО — максимум пиров на каждый торрент. 0 — без ограничений. 55 по умолчанию.
  • —bt-hash-check-seed[=true|false] — проверяем контрольную сумму загруженного файла и становимся на раздачу.
  • —bt-prioritize-piece=head[=РАЗМЕР],tail[=РАЗМЕР] — размер области в начале или конце файла, которая будет загружена первой. Полезно для предпросмотра недокачанных файлов.
  • —bt-seed-unverified[=true|false] — раздаем загруженное без проверки.
  • —follow-torrent=true|false|mem — вообще aria2 и так понимает, что нужно загрузить не только *.torrent , но и содержимое раздачи. Но если указано =mem , программа даже не сохранит *.torrent на диск, а просто будет держать его в памяти. Меньше хлама на диске, но в случае повторных запусков загрузки или раздачи торрент-файл будет загружаться заново. Полезно для «одноразовых» загрузок.
  • —listen-port=ПОРТ — TCP-порт для торрентов. Можно перечислить через запятую или указать диапазон через дефис. Убедитесь, что порты разрешены в файрволле.
  • -u, —max-upload-limit=СКОРОСТЬ — максимальная скорость отдачи для одного торрента. Можно указывать с приставкой К (кило) или М (мега), по умолчанию 0 — без ограничений.
  • —max-overall-upload-limit=СКОРОСТЬ — аналогично предыдущему, но суммарно для всех торрентов. По умолчанию 0 — без ограничений.
  • —seed-ratio=РЕЙТИНГ — до какого рейтинга продолжать раздачу. 0.0 — без ограничений. По умолчанию 1.0
  • —seed-time=МИНУТ — сколько минут продолжать раздачу.
  • —on-download-complete=/ПУТЬ/К/КОМАНДЕ — запустить любую программу, когда загрузка завершена. Сюда можно повесить скрипт, раскидывающий симлинки по каталогам или подающий звуковые и текстовые оповещения.
  • -Z, —force-sequential[=true|false] — запускать загрузки из списка по очереди, а не параллельно.
  • —max-download-limit=СКОРОСТЬ — ограничение скорости загрузки для отдельной раздачи.
  • —max-overall-download-limit=СКОРОСТЬ — аналогично предыдущему, суммарно для всех раздач.
  • —no-conf — не читать файл конфигурации, если надо запустить загрузку с другими параметрами.

Вот и все. И не забывайте брать адрес в кавычки, если он содержит символы, имеющие особое значение в консоли (например, & ).

P. S. На всякий случай повторюсь: это советы тем, кто предпочитает «включить и забыть». Чтобы регулировать параметры в процессе загрузки, нужен клиент, обращающийся по протоколу XML-RPC к aria2 , запущенной в качестве демона (с параметром -D или —daemon ). Список существующих клиентов можно посмотреть на сайте aria2 или вооружиться документацией и написать свой.

aria2c.exe что это за процесс?

aria2c.exe — консольная утилита для работы с торрент-файлами, которая умеет качать отдельные файлы из раздачи.

Кроме торрентов, умеет качать файлы по FTP.

Минус — нет вэб-интерфейса, однако найден скриншот:

Возможно в некотором виде визуальный интерфейс уже существует.

Пример работы в командной строке:

Была найдена информация — aria2c.exe умеет качать файлы по протоколу http. Достаточно указать ссылку на файл, после чего задать папку для загрузки. Примерное использование команды:

Ссылка на форум OSZone, где присутствует мини-инструкция по использованию aria2c.exe:

Похожая консольная утилита — Wget.exe.

Если процесс aria2c.exe в диспетчере задач висит и грузит процессор без видимых причин — можно его завершить. Однако учтите, компоненты aria2c.exe может использоваться для фоновой загрузки обновлений некоторых программ и игр.

Материал по поводу автоматизации загрузок торрент с использованием .bat + curl + aria2c:

Появление окна безопасности от брандмауэра Windows с запросом на разрешение процессу доступ в сеть — вполне нормальное явление, ведь aria2c.exe взаимодействует с сетью:

Неожиданно: компонент может использоваться вирусом

Вирус, точнее троян с названием Trojan.MulDrop8.4052 был обнаружен 2018-03-29 антивирусом Доктор Веб.

Троян создает файлы в временной папке TEMP, один из файлов — aria2c.exe. Видимо троян из сети загружает/подготавливает к работе сторонние компоненты. Скорее всего в этом случае aria2c.exe используется для загрузки вредоносных/обновления модулей.

Ссылка на описание Trojan.MulDrop8.4052:

При подозрении на наличие вируса — проверьте утилитами Dr.Web CureIt, AdwCleaner, HitmanPro.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *