让 Aria2 启动后自动继续未完成的下载 并清理已删除任务的文件
这篇文章从中原驿站镜像至此,推荐访问原地址以查看最新的内容以及最佳的排班效果: https://hzy.pw/p/2475</> 这个假期,我做的最有趣的一件事就是将路由器改造成了一台稳定的 NAS,其中由 Aria2 实现的离线下载服务器是作为 NAS 的一个核心功能。用着非常方便,然而却有以下几个问题: 重启机器后,Aria2 在重启后并不会自动继续之前的下载。虽然保存了 sessions,但 Aria2 重启之后会自动将所有任务暂停。这就没法实现挂机下载了。 删除 Aria2 建立的下载任务后,并不会删除硬盘中对应的文件(包括只下载到一半的破损文件),这很不方便。 为了解决这 2 个问题,我编写了一个 Python 脚本,完美地解决了困扰。 脚本在 Python3 下运行正常,未对 Python2 测试。不依赖第三方模块。 为了实现 “让暂停的任务继续下载”,需要按照 Aria2 文档来调用 RPC,所以 需要在代码内修改相关的连接地址、密码等信息。 脚本同时会自动读取任务列表,并在下载目录找到所有不属于任务列表中的文件,删除之。 你也可以在 fileWhiteList 变量中设置不想要删除的文件的白名单。 #!/usr/bin/python # -*- coding: UTF-8 -*- # 1. start all paused tasks # 2. delete other files on disk # API: https://aria2.github.io/manual/en/html/aria2c.html#rpc-interface from xmlrpc import client as xmlc import os rpcUrl = 'http://127.0.0.1:6800/rpc' rpcToken = 'token:PASSWORD' downloadPath = '/root/usb/nas/download/' # same to aria2 config fileWhiteList = ['/bypy', '/PROTECTED'] # while list for delete s ...