【杂项】Aria2- 基础应用(持续更新)
1、Aria 基础设施
Aria2 下载器
Aria2 下载器支持多种 IPC 通信模式: JSON-RPC, XML-RPC。
IPC 机制
基于 Aria2 提供的 RPC 机制, 我们选择了 xmlrpc 作为进程间通信方式。xmlrpc 开源库多种多样, 比如:libmaia, timxmlrpc。
- libmaia: https://github.com/wiedi/libmaia
一款为 Qt 定制的 XML-RPC 库。 - timxmprpc: https://github.com/drtimcooper/XmlRpc4Win
一款轻量的基于 C/C++ 的 XML-RPC 库。
2、Aria 通信机制
Aria2 下载器具有较灵活的配置:全局配置,单文件配置。
其中,全局配置会覆盖默认参数并影响所有下载资源;单文件配置仅对指定文件生效。
- –continue: 当下载中断时,支持继续下载(append and then check)
- –auto-file-renaming=false: 不支持重命名,即:相同文件会被覆盖
- –allow-override=true: 当缺少控制文件时,重新下载
同时,Aria2 支持通过 command-line 进行初始化,也支持通过 rpc 进行下载过程中的交互。
- aria2.tellStatus: 信息或状态查询
- aria2.addUri: 添加下载文件
- aria2.pasueAll: 暂停操作,比如:下载,校验等
- aria2.unpauseAll: 取消暂停操作
- aria2.getVersion: 获取 aria 版本
3、注意事项
- IPC通信:多文件下载时,略显鸡肋。需要主动查询并统计,还要控制好频率。同时,需要注意 aria2 的 初始化状态(借助 aria2.getVersion 探测)
- 下载进度:各种原因会造成进度回退,需要针对性处理(更新文件,继续上次下载等情况)
【杂项】Aria2- 基础应用(持续更新)
https://jalencui.com/2024/09/16/Aria2-CommonSence-1/