logo
0
0
WeChat Login

aria2go

Go Reference Go Report Card

aria2go 是一个使用 Go 语言开发的多协议下载工具,支持 HTTP/HTTPS 分段下载、断点续传和多文件并发下载。兼容 aria2c RPC 协议。

✨ 特性

  • 多协议支持: HTTP/HTTPS ✅、FTP/SFTP ✅、BitTorrent ✅、Metalink ⏳
  • 分段下载: 多线程分段下载,提升下载速度
  • 断点续传: 支持中断后继续下载
  • 多文件并发: 支持多文件同时下载,独立进度显示
  • 实时进度: 美观的进度条和实时速度显示
  • JSON-RPC: 完整的 RPC 接口,兼容 aria2c 协议 ✅
  • aria2c 兼容: 支持 aria2c 风格的命令行参数
  • 跨平台: 单一二进制文件,支持 Linux、macOS、Windows

🚀 快速开始

安装

# 从源码构建 git clone https://cnb.cool/liweijie0812/aria2go.git cd aria2go make build # 或直接使用 Go go install ./cmd/aria2go

基本使用

# 单文件下载 ./aria2go https://example.com/file.zip # 多线程高速下载(16 连接) ./aria2go -x 16 -s 5 https://example.com/large_file.iso # 多文件并发下载 ./aria2go -j 3 \ https://example.com/file1.zip \ https://example.com/file2.zip \ https://example.com/file3.zip # 指定下载目录和输出文件名 ./aria2go -d /data/downloads -o myfile.zip https://example.com/file.zip # 断点续传 ./aria2go -c https://example.com/partial.zip

守护进程模式

# 启动守护进程 ./aria2go daemon # 带 RPC 密钥启动 ./aria2go daemon --rpc-secret mysecret # 允许远程访问 ./aria2go daemon --rpc-listen-all --rpc-secret mysecret # 启用会话持久化(重启后恢复下载任务) ./aria2go daemon --save-session /path/to/session.dat --save-session-interval 60 # 添加下载任务 ./aria2go add-uri --rpc-secret mysecret https://example.com/file.zip # 查看任务列表 ./aria2go list --rpc-secret mysecret # 查看任务状态 ./aria2go status --rpc-secret mysecret <GID>

📖 文档

文档说明
CLI 使用手册命令行工具完整使用指南
使用示例常见使用场景和示例
配置文件配置文件格式和选项说明
RPC APIJSON-RPC API 调用指南
系统架构技术架构和模块设计

📋 命令行选项

基本选项

选项简写默认值说明
--dir-d~/Downloads下载目录
--out-o输出文件名
--continue-ctrue断点续传
--max-concurrent-downloads-j5最大并发下载数
--max-connection-per-server-x16单服务器最大连接数
--split-s5下载连接数
--min-split-size-k20M最小分片大小
--file-allocationprealloc文件分配方式
--force-sequential-Zfalse顺序下载
--input-file-i从文件读取 URI
--log-l日志文件
--show-files-Sfalse显示文件列表
--timeout120s超时时间
--quiet-qfalse静默模式
--user-agentaria2go/1.0User-Agent
--refererReferer 头
--check-certificatetrue验证证书
--config配置文件路径

用户体验选项

选项简写默认值说明
--language-Len界面语言 (en/zh-CN/zh-TW/ja)
--progress-styledefault进度条样式 (default/classic/modern)
--log-formatconsole日志格式 (console/json)
--no-colorfalse禁用彩色输出

HTTP/FTP 选项

选项说明
--http-userHTTP 用户名
--http-passwdHTTP 密码
--ftp-userFTP 用户名
--ftp-passwdFTP 密码
--load-cookies从文件加载 Cookies
--save-cookies保存 Cookies 到文件

代理选项

选项说明
--all-proxy设置所有协议的代理服务器
--http-proxy设置 HTTP 代理服务器
--https-proxy设置 HTTPS 代理服务器
--ftp-proxy设置 FTP 代理服务器
--no-proxy不使用代理的主机列表(逗号分隔)
--proxy-method代理方法(get/tunnel)
--all-proxy-user所有代理的用户名
--all-proxy-passwd所有代理的密码
--http-proxy-userHTTP 代理用户名
--http-proxy-passwdHTTP 代理密码
--https-proxy-userHTTPS 代理用户名
--https-proxy-passwdHTTPS 代理密码
--ftp-proxy-userFTP 代理用户名
--ftp-proxy-passwdFTP 代理密码

BitTorrent 选项

选项简写默认值说明
--torrent-file-TTorrent 文件
--listen-port6881-6999监听端口范围
--enable-dhttrue启用 DHT
--dht-listen-port6881-6999DHT 监听端口
--max-upload-limit-u0每任务上传限速
--max-overall-upload-limit0总上传限速

Metalink 选项

选项简写说明
--metalink-file-MMetalink 文件

守护进程选项

选项简写默认值说明
--enable-rpctrue启用 RPC 服务器
--rpc-listen-port-p6800RPC 监听端口
--rpc-listen-allfalse监听所有接口
--rpc-listen-host127.0.0.1RPC 监听主机
--rpc-secretRPC 认证密钥
--save-session会话文件路径(启用会话持久化)
--save-session-interval0自动保存间隔(秒,0 表示禁用自动保存)

完整选项列表请参阅 CLI 选项参考

# 构建所有平台 make build # 运行测试 make test # 运行测试(带覆盖率) make test-cover # 代码格式化 make fmt # 创建发布版本 make release

📊 功能状态

功能状态说明
HTTP/HTTPS 下载完整支持
多线程分段下载完整支持
断点续传完整支持
多文件并发完整支持
实时进度显示完整支持
JSON-RPC (aria2 兼容)100% 兼容 aria2c 协议
会话持久化完整支持(启动恢复、自动保存、手动保存)
FTP/SFTP 下载完整支持(FTP、FTPS、SFTP)
HTTP 认证完整支持(Basic Auth)
Cookie 管理完整支持(Netscape/SQLite 格式)
代理支持完整支持(HTTP/HTTPS/FTP代理、No Proxy、代理认证)
BitTorrent 下载完整支持(Torrent 文件、磁力链接、DHT、PEX、加密)
Metalink 下载基础支持(命令行选项已实现)

RPC 兼容性

aria2go 实现了完整的 aria2c JSON-RPC 协议,支持:

  • aria2.addUri - 添加 URI 下载任务
  • aria2.addMetalink - 添加 Metalink 下载任务
  • aria2.tellStatus - 获取任务状态
  • aria2.tellActive - 获取活动任务列表
  • aria2.tellWaiting - 获取等待任务列表
  • aria2.tellStopped - 获取停止任务列表
  • aria2.pause / aria2.forcePause - 暂停任务
  • aria2.unpause - 恢复任务
  • aria2.remove / aria2.forceRemove - 移除任务
  • aria2.changePosition - 调整任务队列位置
  • aria2.changeUri - 修改任务 URI
  • aria2.getOption / aria2.changeOption - 获取/修改选项
  • aria2.getGlobalStat - 获取全局统计
  • aria2.shutdown / aria2.forceShutdown - 关闭服务器
  • aria2.saveSession - 保存会话
  • aria2.getVersion - 获取版本信息
  • aria2.getFiles - 获取文件列表
  • aria2.getServers - 获取服务器信息
  • system.multicall - 批量调用
  • system.listMethods - 列出可用方法

详见 RPC 方法参考

📄 许可证

MIT License - 详见 LICENSE 文件

About

No description, topics, or website provided.
1.48 MiB
0 forks0 stars2 branches0 TagREADMEMIT license
Language
Go97.2%
Vue1.6%
TypeScript0.6%
Makefile0.3%
Others0.3%