Linux 实现文件多线程下载

Linux 2020-10-19 阅读 379 评论 0

问题描述

在 Windows 系统我们可以使用 Internet Download Manager (IDM)Neat Download Manager (NDM) 实现多线程下载文件,Mac也能使用 NDM,从而提高提高下载速度。但是在 Linux 系统中,我们常用的 wget 或者 curl 命令本身不支持支持多线程下载的服务。

解决方法

多线程下载的前提是下载的链接支持断点续传服务。curl 命令有一个参数 --range,可以下载指定的字节,如果不嫌弃麻烦,可以写一个小程序实现多线程下载与合并。我们同样可以使用 aria2

aria2 是用于下载文件的实用程序。支持的协议是HTTP(S),FTP,SFTP,BitTorrent和Metalink。 aria2可以从多个来源/协议下载文件,并尝试利用最大下载带宽。它支持同时从HTTP(S)/ FTP / SFTP和BitTorrent下载文件,而从HTTP(S)/ FTP / SFTP下载的数据上传到BitTorrent群。使用Metalink的块校验和,aria2在下载BitTorrent之类的文件时会自动验证数据块。

使用以下命令,实现多线程下载:

aria2c -x 16 -s 16 [url]
#          |    |
#          |    |
#          |    |
#          ---------> 连接数

-x, --max-connection-per-server = N

              每次下载到一台服务器的最大连接数。默认值:1

-s,--split = N
              使用N个连接下载文件。

最后更新 2020-10-31
MIP.watch('startSearch', function (newVal, oldVal) { if(newVal) { var keyword = MIP.getData('keyword'); console.log(keyword); // 替换当前历史记录,新增 MIP.viewer.open('/s/' + keyword, {replace: true}); setTimeout(function () { MIP.setData({startSearch: false}) }, 1000); } }); MIP.watch('goHome', function (newVal, oldVal) { MIP.viewer.open('/', {replace: false}); });