必备极速下载工具 — aria2

必备极速多线程并行下载工具 — aria2

aria2 是一款免费开源跨平台且不限速的多线程下载软件,其优点是速度快、体积小、资源占用少;支持 HTTP / FTP / BT / Magnet 磁力链接等类型的文件下载;支持 Win、Mac、Linux 系统,甚至在树莓派、NAS、路由器等设备上都能安装它。强大的地方,结合第三方插件,可以扩展,下载百度网盘等资源,居家下片必备神器。

官网:https://aria2.github.io

alt

aria2 并行下载的原理:

  1. 分段下载:aria2 将下载的文件分成多个较小的段(chunk),每个段的大小可以通过参数进行设置。然后,aria2 同时启动多个线程,每个线程负责下载不同的段,从而实现同时下载多个片段的目的。

  2. 多连接下载:aria2 可以同时使用多个连接下载同一文件的不同段。在 HTTP/HTTPS 下载中,这通常是通过断点续传来实现的。它向服务器请求文件的不同部分,服务器将这些部分作为不同的片段返回给 aria2,然后 aria2 会合并这些片段,组装成完整的文件。

  3. 服务器支持:为了实现多线程下载,服务器必须支持断点续传功能。如果服务器不支持断点续传,aria2 将无法使用多线程下载。

  4. 带宽控制:aria2 可以设置最大下载速度(速度限制)和最大连接数,以控制下载时的带宽使用情况。这样可以避免过多的连接和下载速度过快,从而平衡带宽资源的利用。

多线程下载的优势在于能够利用更多的网络资源,提高下载速度,尤其在高带宽和高延迟的网络环境中,多线程下载能显著地提升下载效率。然而,要实现有效的多线程下载,需要下载服务器支持断点续传,并且服务器端的带宽和处理能力也需要足够强大,否则可能会导致服务器负担过重或被封禁。因此,在使用aria2进行多线程下载时,需要适度设置连接数和速度限制,以免对服务器和网络造成不必要的负担。

扫码关注微信公众号【生信F3】获取更多生物信息学最新知识。

ShengXinF3_QRcode
ShengXinF3_QRcode

1 安装方式

1.1 使用 Docker 容器

官方介绍:https://p3terx.com/archives/docker-aria2-pro.html

Aria2 是目前最强大的全能型下载工具,它支持 BT、磁力、HTTP、FTP 等下载协议,常用做离线下载的服务端。目前有非常多的 Aria2 Docker 方案,大多都整合了 We­bUI 和文件管理功能,看似很好很强大,实际上都只是做了简单的打包的工作,完全没有考虑到核心的下载体验和资源占用等问题。这也导致很多人在初次使用 Aria2 时会遇到 BT 下载无速度、文件残留占用空间、任务丢失等问题,所以会觉得 Aria2 并不好用,但事实并非如此。Aria2 完美配置是博主经过长时间使用和研究官方文档后总结出来的一套配置方案,其最初目的是为了解决这些问题,而且为 Aria2 添加了额外的一些功能,经过一年多时间的打磨已经积累了大量的使用者和良好的口碑,其中不乏一些知名开源项目开发者、影视字幕组、科技视频 UP 主。之前一直使用一键脚本作为部署方案,为了满足小伙伴们使用 Docker 部署的需求,博主特意制作了基于 Aria2 完美配置和特殊定制优化的 Aria2 Docker ,为了和一般的 Aria2 Docker 方案做区分所以将其取名为 Aria2 Pro。

https://hub.docker.com/r/p3terx/aria2-pro

docker pull p3terx/aria2-pro
singularity pull docker://p3terx/aria2-pro

1.2 Linux 下安装

# Debian | Ubuntu | Mint
$ sudo apt-get install aria2
# CentOS | RHEL | Fedora 21 和更早些的操作系统
$ sudo yum install aria2
# Fedora 22 和之后的系统
$ sudo dnf install aria2
# 对于 suse 和 openSUSE
$ sudo zypper install wget
# Mageia
$ sudo urpmi aria2
# 对于 Arch Linux
$ sudo pacman -S aria2

2 下载文件

2.1 Windows 下使用

推荐使用以 aria2 为内核的桌面应用 Motrix(https://motrix.app/)。Motrix 是一款全能的下载工具,支持下载 HTTP、FTP、BT、磁力链等资源。

2.2 Linux 下使用

2.1 基本用法
$ aria2c [OPTIONS] [URI | MAGNET | TORRENT_FILE | METALINK_FILE]...

从 WEB 下载:

$ aria2c http://example.org/mylinux.iso

下载两个文件:

$ aria2c http://a/f.iso ftp://b/f.iso

每台主机使用 4 个连接下载:

$ aria2c -x4 -s4 http://a/f.iso

BitTorrent 下载

$ aria2c http://example.org/mylinux.torrent

BitTorrent 磁力链接(Magnet URI):

$ aria2c 'magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C1ED359BB46717D8C'

通过 Metalink 下载:

$ aria2c http://example.org/mylinux.metalink

利用保存在文本文件中的 URI 下载:

$ aria2c -i uris.txt
2.2 选项参数

-d, --dir=<DIR>

指定文件下载目录。

-i, --input-file=<FILE>

指定保存 URI 下载链接的输入文件,例如:

http://example.com/foo
http://example.com/bar

-j, --max-concurrent-downloads=<N>

设置并发下载项的数量。默认值:5

注意:--max-concurrent-downloads 用于限制并发下载项的数量。--split--min-split-size 影响每条项内的连接数。以上述 -i 参数的输入文件为例,其存在 2 个下载项(item),如果给 --max-concurrent-downloads 赋值大于或等于 2,aria2 可以并发地下载这些项。在每个下载项中,我们可以使用 --split 和/或 min-split-size 等配置连接数。

-c, --continue [true|false]

继续下载部分下载的文件。使用此选项可以恢复由 web 浏览器或其他程序开始的下载,这些程序从头向后下载文件。目前此选项仅适用于 HTTP(S)/FTP 下载。注意:如果出现了任何中断,aria2 使用 .aria2 后缀保存(未完成的)文件。

-x, --max-connection-per-server=<NUM>

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

-k, --min-split-size=<SIZE>

例如,让我们考虑下载 20MiB 文件。如果 SIZE 为 10M,aria2 可以将文件拆分为 2 个范围 [0-10MiB] 和[10MiB-20MiB],并使用 2 个源(如果 --split >= 2)同时下载它。如果 SIZE 为 15M,由于 2*15M >20MiB, aria2 不拆分文件并使用 1 个源下载。我们可以添加 K 或 M (1K = 1024, 1M = 1024K)。取值范围:1M ~ 1024m。默认值:20M

-s, --split=<N>

使用 N 个连接下载文件。如果给定的 URI 多于 N 个,则使用前 N 个 URI,其余的 URI 用于备份。如果给出的URI 少于 N 个,则这些 URI 将被重复使用,从而同时建立总共 N 个连接。到同一台主机的连接数由 --max-connection-per-server 选项限制。默认值:5

下面的命令将会从 NCBI 下载 Nr 数据库文件,并且保存在当前目录:

aria2c --file-allocation=none --continue=true --max-connection-per-server=5 -j5 https://ftp.ncbi.nlm.nih.gov/blast/db/FASTA/nr.gz
  1. --file-allocation=none:指定文件分配方法。'none' 不预先分配文件空间。
  2. --continue=true
  3. --max-connection-per-server=5
  4. -j10
  5. -o:在初始化下载的时候,我们可以使用选项在保存文件的时候使用不同的名字

在下载文件的过程中,我们可以看到文件的(日期、时间、下载速度和下载进度)

扫码关注微信公众号【生信F3】获取更多生物信息学最新知识。

ShengXinF3_QRcode
ShengXinF3_QRcode

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/226535.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习笔记:如何分析财务报表

其实财务报表分析最核心的东西&#xff0c;是通过财务报表这个结果&#xff0c;由果推因&#xff0c;找出造成这个结果的原因。 会计是商业的语言 首先第一个问题是——会计是商业的语言&#xff0c;这是会计的根本。 什么叫“语言”&#xff0c;就是可以通过它进行交流。比如…

企业级开发链表思路

项目结构 头文件代码 头文件代码LinkList.h #ifndef LINKLIST_H #define LINKLIST_H #include <stdio.h> #include <stdlib.h> #include <iostream> // 链表小节点 typedef struct LINKBODE {struct LINKBODE* next;}LinkNode; // 遍历的函数指针 typedef …

Python基础:标准库概览

1. 标准库介绍 Python 标准库非常庞大&#xff0c;所提供的组件涉及范围十分广泛&#xff0c;正如以下内容目录所显示的。这个库包含了多个内置模块 (以 C 编写)&#xff0c;Python 程序员必须依靠它们来实现系统级功能&#xff0c;例如文件 I/O&#xff0c;此外还有大量以 Pyt…

数字电源为什么一般用DSP控制,而不能用普通的单片机?

数字电源为什么一般用DSP控制&#xff0c;而不能用普通的单片机&#xff1f; 首先你要清楚&#xff0c;数字电源需要一个芯片具备什么功能&#xff1f; 1 能发PWM波 &#xff0c;并且具备保护关断功能&#xff1b; 电源对PWM发波 要求很高&#xff0c;精度要ns级甚至ps级的&…

你敢信?四行Python代码就能知道你那的天气!

今天给大家带来的Python实战项目是四行Python代码获取所在城市的天气预报&#xff0c;我们隐隐听到唏嘘声&#xff0c;不信四行Python代码可以获取是吗?那我们一起来看看&#xff1a; 四行Python代码就能知道你那的天气&#xff0c;你敢信&#xff1f; 使用Python获取天气预报…

【Linux】yum -- 软件包管理器

目录 一、Linux中是如何安装软件的 1.1 安装的方法 1.2 安装的本质(基本理解) 二、软件包 2.1 软件包的概念 2.2 为什么要有软件包 三、yum--软件包管理器 3.1 yum的概念 3.2 yum的使用 3.2.1 搜索一个软件 3.2.2 安装一个软件 3.2.3 卸载一个软件 3.3 yum源更新 …

图书管理系统源码,图书管理系统开发,图书借阅系统源码配置和运行图解源码已附加

目录 配置简介和软件条件 数据库附件配置 vs应用程序web.config配置数据库链接字符串 数据库文件脚本代码 配置简介和软件条件 所需要的软件是Vs2017以上数据库是Sqlserver2012以上,如果数据库附件不了可以使用数据库脚本附件数据库脚本会在文章末尾写出来。可以直接复制到…

51单片机项目(17)——基于51单片机的双机通信系统

1.功能设计 本次实现的功能如下&#xff1a; 发送端通过串口向接收端循环发送字符0~F&#xff0c;并且实时显示在数码管上 接收端通过串口接收数据&#xff0c;将接收到的数据实时显示在数码管上。 &#xff08;需要完整工程的移步至最后 包括发送端代码 接收端代码 仿真图…

vue+uniapp校园寻物失物招领平台 微信小程序1f6z5

系统中的核心用户是管理员&#xff0c;管理员登录后&#xff0c;通过管理员菜单来管理后台系统。主要功能有&#xff1a;首页、个人中心、用户管理、物品分类管理、物品信息管理、物品归还管理、留言板管理、系统管理等功能。管理员用例如图3-7所示。 对于本网上失物招领小程序…

js闭包的必要条件及创建和消失(生命周期)

>创建闭包的必要条件&#xff1a; 1.函数嵌套 2.内部函数引用外部函数的变量 3.将内部函数作为返回值返回 >闭包是什么&#xff1f; 就是可以访问外部函数&#xff08;作用域&#xff09;中变量的内部函数 > 闭包是什么时候产生的&#xff1f; - 当调用外部函数…

初识Java 18-4 泛型

目录 泛型存在的问题 在泛型中使用基本类型 实现参数化接口 类型转换和警告 无法实现的重载 基类会劫持接口 自限定类型 奇异递归类型 自限定 自限定提供的参数协变性 本笔记参考自&#xff1a; 《On Java 中文版》 泛型存在的问题 接下来讨论的&#xff0c;是在泛型…

爱芯元智AX650N部署yolov8s 自定义模型

爱芯元智AX650N部署yolov8s 自定义模型 本博客将向你展示零基础一步步的部署好自己的yolov8s模型&#xff08;博主展示的是自己训练的手写数字识别模型&#xff09;&#xff0c;本博客教你从训练模型到转化成利于Pulsar2 工具量化部署到开发板上 训练自己的YOLOv8s模型 准备自…