虽然还有 20 天放暑假,但毕竟还有 20 天,我还得要在学校这极慢的网速下存活 20 天。
最近数据结构课程设计,采用的是 C 语言。虽然几下就把老师要求的作业完成,但用的开发环境是 Dev-C++ 这让我很觉得用着不顺手,调式功能用不了,而代码不全功能几乎没有。
这几天我找了好多个 IDE:CLion、CodeLite、C::B,先不说好不好用,每个软件的下载对我来说都是一道坎,在我们学校,已经不是所谓的 “龟速” 了,而是根本没有速度。
百度云的离线下载也不总是好用,于是我就来我的服务器,采用 wget 或者 curl 下载,再使用 Nginx 给电脑提供下载,虽然速度受限于学校网速,只有百来 kb 甚至几十 kb,但至少是有速度了。。
以这个为思路,我就开始打算自己写一个类似 “百度云离线下载” 的功能给自己用。
寻找类似的项目及初步构思
第一步我是去网上寻找相关的项目,找到了:http://lyxz.gq/ 和 http://go.lyxz.gq/ 两个,输入链接后服务器进行缓存,然后我们再下载到本地。但是这服务器在境外,虽然可以翻墙获取资源,但取回本地的速度还是太慢。
鉴于 Linux 下 curl 太好用,我就没有必要自建轮子了。nodeJS 可以用 exec 执行系统命令,于是准备用 restify 模块做成一个 Restfull API,配合前端实现一个完整的可添加、暂停任务的完整离线下载服务。
等我把框架都搭好了,却发现有现成的。。。
Aria2 已经做好了我想做的一切
发现这东西是在我的路由器上,之前刷的 PandoraBox,内置了 Aria2,作为路由器的离线下载工具,之前没玩过,今天一玩,发现这东西竟然是前后端分离的,采用前端 web 界面作为客户端,这不正好满足我的需求吗。
aria2 is a utility for downloading files. The supported protocols are HTTP(S), FTP, SFTP, BitTorrent, and Metalink. aria2 can download a file from multiple sources/protocols and tries to utilize your maximum download bandwidth. It supports downloading a file from HTTP(S)/FTP/SFTP and BitTorrent at the same time, while the data downloaded from HTTP(S)/FTP/SFTP is uploaded to the BitTorrent swarm. Using Metalink’s chunk checksums, aria2 automatically validates chunks of data while downloading a file like BitTorrent.
The project page is located at https://aria2.github.io/.
Aria2 是一个类似于 curl 的命令行下载工具,更加强大,多线程、断点续传自然是支持,连 BT 下载也都可以。而这是 ziahamza 提供的 webUI 界面,也是非常的完善了:
服务器方面
话说作为当代大学生,福利可真不少,目前用着阿里云 9.9 的云服务器,前几周发现腾讯云 1 元钱云服务器,还送域名,就去随手申请了一个,开通的是 winServer,正纠结没用处,这就派上用场了。
装好 aria2 的 windows 二进制版,调几个参数,再到 IIS 中搞几下。这就完工了,开始使用了~
在客户端下载好后,去 http://dl.best2u.cc/,就能够看到离线下载到我的服务器的文件啦!是的,best2u.cc 是我注册的新域名。
特别说明:暂时没有打算把我的离线下载服务器公开。
突发奇想:让离线下载服务器自动翻墙
一个突发奇想,由于我的腾讯云服务器在大陆,没法翻墙,离线下载的东西也仅限墙内,不由得让人遗憾。
但毕竟是 winServer 服务器,于是我将 Shandowsocks 客户端上传了上去,连接到我在洛杉矶的翻墙服务器,都知道 SS 的 Windows 客户端做的很不错,墙内直连,墙外自动翻墙,很方便。
于是,我的离线下载服务器现在支持下载墙外资源咯!
交换友情链接吗?
关键词 站长博客 或者站长资源悍涝