1. aria2
1.1. ajax调用demo
自定义工具下载下载地址
页面调用
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script> </head> <body> </body> <script> //https://static.zhihu.com/heifetz/vendor.7177302d6c7d65981005.js var url1 = "http://localhost:6800/jsonrpc?tm=1569769711558"; var downData=[{ "jsonrpc": "2.0", "method": "aria2.addUri", "id": 456, "params": [ ["http://fastsoft.onlinedown.net/down/PCQQ9.1.8.26211.exe"], { "split": "5", "max-connection-per-server": "5", "seed-ratio": "0" } ] }, { "jsonrpc": "2.0", "method": "aria2.addUri", "id": 457, "params": [ ["https://cdn.bootcss.com/jquery/3.4.1/jquery.js"], { "split": "5", "max-connection-per-server": "5", "seed-ratio": "0" } ] }, { "jsonrpc": "2.0", "method": "aria2.addUri", "id": 458, "params": [ ["https://static.zhihu.com/heifetz/vendor.7177302d6c7d65981005.js"], { "split": "5", "max-connection-per-server": "5", "seed-ratio": "0" } ] }]; $.ajax({ url: url1, data: JSON.stringify(downData), type: "post", //async: false,//false为同步 dataType: "json", success: function(obj) { console.log(obj) } }); </script> </html> idid
1.2. json-rpc命令探究
(译) JSON-RPC 2.0 规范(中文版)
英文版
nodejs调用
使用JSONRPC操作附带token(secret)的aria2
- 设置全局下载路径命令
{"jsonrpc":"2.0","method":"aria2.changeGlobalOption","id":"QXJpYU5nXzE1NzA2Njk1NDNfMC4yNDIwMjMzMzExMTM2MDE5Nw==","params":[{"dir":"Aria2Data9999"}]}
- 获取全局设置参数
{"jsonrpc":"2.0","method":"aria2.getGlobalStat","id":"QXJpYU5nXzE1NzA2Njk2NDBfMC4xNjI1OTU5MDUyNDkwMDE4"}
- 不知名参数1
{"jsonrpc":"2.0","method":"aria2.tellActive","id":"QXJpYU5nXzE1NzA2Njk0NzBfMC4zOTcxNDYyMDMyNTEzODE1","params":[["gid","totalLength","completedLength","uploadSpeed","downloadSpeed","connections","numSeeders","seeder","status","errorCode","verifiedLength","verifyIntegrityPending"]]}
- 参考设置参数,带设置文件夹
{"jsonrpc": "2.0", "id": "qwer", "method": "aria2.addUri", "params": ["token:secret",["http://www.baidu.com"],{"out":"index.html" ,"dir":"/home/"}] }
设置限速
{"jsonrpc":"2.0","method":"aria2.changeGlobalOption","id":"QXJpYU5nXzE1NzA2NzM1NzZfMC42NTU0NTc2Nzc1ODYwMjIx","params":[{"lowest-speed-limit":"1000"}]}
暂停某一个
{"jsonrpc":"2.0","method":"aria2.tellStopped","id":1,"params":[0,1000]}
- 设置同时下载三个
{"jsonrpc":"2.0","method":"aria2.changeGlobalOption","id":1,"params":[{"max-overall-download-limit":"100 KiB","max-overall-upload-limit":"0 KiB","max-concurrent-downloads":"3","min-split-size":"10 MiB","user-agent":"Transmission/2.77","dir":"Aria2Data"}]}:
- 查看所有激活状态
{"jsonrpc":"2.0","method":"aria2.tellActive","id":1}
结果为
{"id":1,"jsonrpc":"2.0","result":[{"bitfield":"f800e000f0000000f0000000e0000000","completedLength":"22904832","connections":"5","dir":"Aria2Data","downloadSpeed":"79879","files":[{"completedLength":"19922944","index":"1","length":"132129752","path":"Aria2Data\/w.p.s.8894.20.2735.exe","selected":"true","uris":[{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/w.p.s.8894.20.2735.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/w.p.s.8894.20.2735.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/w.p.s.8894.20.2735.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/w.p.s.8894.20.2735.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/w.p.s.8894.20.2735.exe"}]}],"gid":"596d2e6c54b04f2f","numPieces":"127","pieceLength":"1048576","status":"active","totalLength":"132129752","uploadLength":"0","uploadSpeed":"0"},{"bitfield":"f0300f0000e0000e0000","completedLength":"18464768","connections":"4","dir":"Aria2Data","downloadSpeed":"24521","files":[{"completedLength":"16777216","index":"1","length":"83201568","path":"Aria2Data\/PCQQ9.1.8.26211.exe","selected":"true","uris":[{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"waiting","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"}]}],"gid":"ff91af4e5696519d","numPieces":"80","pieceLength":"1048576","status":"active","totalLength":"83201568","uploadLength":"0","uploadSpeed":"0"}]}
- 结束选中的两个
[{"jsonrpc":"2.0","method":"aria2.pause","id":1,"params":["596d2e6c54b04f2f"]},{"jsonrpc":"2.0","method":"aria2.pause","id":2,"params":["ff91af4e5696519d"]}]
结果为
- 选中两个取消暂停
[{"jsonrpc":"2.0","method":"aria2.unpause","id":1,"params":["ff91af4e5696519d"]},{"jsonrpc":"2.0","method":"aria2.unpause","id":2,"params":["596d2e6c54b04f2f"]}]
返回结果
- 添加一个微信下载文件并设置保存地址,添加后暂停等
[{"jsonrpc":"2.0","method":"aria2.addUri","id":1,"params":[["微信下载地址.exe"],{"out":"微信123","dir":"./微信文件夹","pause":"true","split":"5","max-connection-per-server":"5","seed-ratio":"0"}]}]
- 如果是批量下载采用循环遍历
{"jsonrpc":"2.0","method":"aria2.addUri","id":"QXJpYU5nXzE1NzA2NzY3MDVfMC4xNjEyODc3ODk5ODUxODAxMg==","params":[["https://static.zhihu.com/heifetz/vendor.7177302d6c7d65981005.js"],{}]}
{"jsonrpc":"2.0","method":"aria2.addUri","id":"QXJpYU5nXzE1NzA2NzY3MDVfMC42NzU0NTc4Njc3OTU3Mjg0","params":[["https://cdn.bootcss.com/jquery/3.4.1/jquery.js"],{}]}
- 移除任务,对应返回的result。把result作为进程id。
选中两个操作也是循环遍历一个一个命令。是否可以优化为[]数组参数的形式。
{"jsonrpc":"2.0","method":"aria2.removeDownloadResult","id":"QXJpYU5nXzE1NzA2NzY4NzBfMC40OTkwNTE5MDg1NTU1OTUzNA==","params":["f8d403e37f51b63c"]}
关于批量操作的猜想
AriaNg的操作参数是{} 一个对象,而http://aria2c.com/的操作参数是数组》》把两个操作命令合在一个数组中aira2后台控制台的尝试
直接的后台带配置启动命令 aria2c.exe --conf-path=aria2.conf