Получение Aria2 (aria2c) для возобновления загрузки файлов, добавленных через RPC

В настоящее время я запускаю aria2 в режиме демона, чтобы управлять им с помощью команд xml-rpc. Добавление файлов через xml-rpc работает нормально. Проблема, которую я пытаюсь решить, состоит в том, чтобы заставить aria2 возобновить "сеанс", если он остановлен внезапно, а не изящно.

Я использую настройку "интервал сохранения сеанса", описанную в данном руководстве, чтобы попытаться заставить арию сохранить файл сеанса с интервалом. Если я прерываю aria с помощью прерывания ctrl-c, он изящно сохраняет ожидающие загрузки в файл сеанса. После чего, если я перезапущу aria той же командой, она возобновит загрузку правильно.

Каждые 20 секунд aria2 пишет в консоль, сообщая, что она сериализовала сеанс. Notepad++ даже обнаруживает, что файл был изменен, однако файл остается пустым.

07/11 22:49:54 [NOTICE] Serialized session to 'C:\temp\aria\session.txt' successfully.

Команда, которую я использую для запуска арии:

aria2c.exe --conf-path=C:\temp\aria\aria.conf --daemon

Содержимое файла conf:

dir=C:\temp\aria
input-file=C:\temp\aria\session.txt
save-session=C:\temp\aria\session.txt
enable-rpc=true
save-session-interval=20

Используемая мной команда xml-rpc вызывается из python так:

import xmlrpclib
fileurl = "http://example.com/sample_file.txt"
s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
val = s.aria2.addUri([fileurl], {'http-user':'user', 'http-passwd':'pass'})

Еще одна вещь, которую я попытался - это очистить файл сеанса после изящной остановки aria (что позволило ему записать ожидающую загрузку в файл сеанса). Затем он перезаписывает файл сеанса при загрузке. Такое поведение наводит меня на мысль, что aria не сохраняет загрузки, добавленные через xml-rpc, в список "session" для сохранения в файле сессии.

Я также попытался добавить "интервал сохранения сеанса" к исходной команде вместо файла conf, но поведение идентично.

Ария Версия Детали:

aria2 version 1.17.1

1 ответ

Я использую приведенный ниже файл conf с aria, работающей от имени deamon, и она отлично работает:

dir=/media/ExternalHd/aria
file-allocation=falloc
continue
log-level=error
max-connection-per-server=4
summary-interval=120
daemon=true
enable-rpc=true
rpc-listen-port=6800
rpc-listen-all=true
max-concurrent-downloads=2
save-session=/home/pi/Desktop/aria.txt
input-file=/home/pi/Desktop/aria.txt
log=/home/pi/Desktop/aria.log
disable-ipv6=true
disk-cache=25M
timeout=600
retry-wait=30
max-tries=50
save-session-interval=10

Попробуйте использовать вышеуказанный конфиг и запустите aria2c от имени deamon, вы также можете использовать различные методы для доступа к интерфейсу RPC aria2c, как подробно описано здесь с настольных и мобильных устройств. Я использую мобильное приложение и веб-интерфейс, и он сохраняет сеанс с aria2c v 1.16.5

Другие вопросы по тегам