我使用aria2作为远程控制的下载客户端。
如aria2所示,它支持--on-download-complete
,它可以向执行的脚本传递3个参数。以下是参考资料:https://aria2.github.io/manual/en/html/aria2c.html?highlight=on-download#event-hook
但现在我正在使用python xmlrpc包装器与aria2对话。这是我正在使用的包装纸:https://github.com/alfateam123/pyaria2server = PyAria2( 'localhost', 6800, rpcSecret={"useSecret": False, "secret": None})unique_id_accepted = server.addUri([http://somewhere.com/somefile.iso], options={ "dir": "/srv/", "gid": "abcdef1234567890", "max-connection per-server": 5, "on-download-complete": "touch /tmp/done" } )
如果aria2开始从uri下载,则unique_id_accepted
与此场景中的gid
相同。实际上阿里亚2是有效的。当我在aria2中看到下载作业时,gid
被接受。但完成后,它不会执行命令touch /tmp/done
选项有问题吗?
在完成之后,您如何与aria2对话以执行命令?
非常感谢!
我找到的更新Sample XML-RPC Client Code
https://aria2.github.io/manual/en/html/aria2c.html#sample-xml-rpc-client-code
我试过这句台词:"onDownloadComplete": "touch /tmp/done"
但还是不行。
更新
aria2c版本aria2c -v
1.18.1** Configuration **Enabled Features: Async DNS, BitTorrent, Firefox3 Cookie, GZip, HTTPS, Message Digest, Metalink, XML-RPCHash Algorithms: sha-1, sha-224, sha-256, sha-384, sha-512, md5Libraries: zlib/1.2.8 libxml2/2.9.1 sqlite3/3.8.1 GnuTLS/2.12.23 libgcrypt/1.5.3 c-ares/1.10.0
最佳答案
我找到了解决办法。
它只支持命令行中的“事件挂钩”。
这是解决方案:https://aria2.github.io/manual/en/html/aria2c.html#event-hook
我们应该以这种格式添加已执行的脚本。
我以前做的实验不适合aria2c,它天生就有这个缺陷(被证明)。
希望这对另一个灵魂有帮助:p