用树莓派做一个离线下载机
用树莓派可以做很多有意思的东西,它相当于一个小型的电脑,装上系统完全可以作为一个家用的小型服务器。
通过这个小型服务器,可以实现一个“离线”下载机。不过这里的离线下载不是真的离线,因为树莓派还是在线的——既然树莓派当做了小型服务器,那应该长期保持在线状态了——不过由于树莓派的功耗很小,而且占用空间也很小,所以当做家用服务器还是很可以的。
这个树莓派的离线下载器是使用aria搭建的,aria是一个开源的多线程下载工具,可以完成很多种类的下载任务。通过aria2我们就可以很轻松的完成下载任务,包括wget这类工具做不了的。
首先是安装aria2,我们可以通过aria2的官网下载安装:http://aria2.github.io/
同样,如果你的树莓派和我用的一个系统——debian,也可以使用debian的命令安装:
$sudo apt install aria2
只需要等待片刻,就可以安装成功。
之后,我们就可以使用aria2进行下载任务,aria2的下载命令很简单,例如,我们想要下载一个mp3,则只用输入:
$aria2c XXXX/abc.mp3
具体的aria2的使用方式,我们可以参考aria2的官方文档:http://aria2.github.io/manual/en/html/index.html
这样就可以了吗?当然不行,这还不够一个离线下载工具的易用性。
接下来就是给aria2安装图形界面,aria2官方推荐有很多图形界面,并且,aria2也提供了rpc接口可以供我们进行调用,下面我们就使用一个开源的界面给aria2安装图形工具。
我们选用的图形工具是Aria2 WebUI,这个工具可以在aria2的官网上找到,我们进入它的github,把项目clone下来:
git clone https://github.com/ziahamza/webui-aria2.git
拿到代码后,只用输入
node node-server.js
图形界面就可以跑起来了,不过在此之前你需要安装nodejs环境,通过以下命令:
$sudo apt install nodejs
这样跑起来并不能使用,我们需要先配置以下启动项,将aria2 webui下的configconfiguration.js打开,将
host: location.protocol.startsWith('http') ? location.hostname : 'localhost'
这一行改成:
host: location.protocol.startsWith('http') ? location.hostname : '0.0.0.0'
不然在服务器之外没办法访问的。
然后我们可以在其他主机上输入树莓派的内网IP地址,比如树莓派的IP位192.168.1.122,在和树莓派的路由器同意网段的主机上,访问192.168.1.122:8888,我们就可以看到web页面了。
但是,这个只是一个页面而已,这个页面和aria2是通过rpc交互的,所以我们需要启动aria2的rpc:
aria2c --enable-rpc --rpc-listen-all
这样我们的图形界面就可以访问aria2的服务了。
这样就访问到了界面,如果平时我们有什么大文件需要下载的时候,我们就可以睡觉前点击下载,然后把电脑关了,第二天起床就下载到了树莓派上了。接下来我们可以将树莓派的数据通过路由器内网下载到电脑硬盘,这个过程就很快了,如果想要一个简单的方式建立一个http文件访问的话,我们可以在aria2的下载目录下,使用python3的命令快速建立一个http访问文件,进行下载:
python3 -m http.server
点击文件,就可以快速下载了,感觉是不是很棒呢?