必备极速下载工具 — 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.rhkb.cn/news/204174.html

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

相关文章

Kotlin学习——流程控制,when,循环,range工具 kt里的equals if实现类似三元表达式的效果

Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复用代码&#xff0c;以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

「江鸟中原」有关HarmonyOS-ArkTS的Http通信请求

一、Http简介 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一种用于在Web应用程序之间进行通信的协议&#xff0c;通过运输层的TCP协议建立连接、传输数据。Http通信数据以报文的形式进行传输。Http的一次事务包括一个请求和一个响应。 Http通信是基于客户端-服…

黑马React18: ReactRouter

黑马React: ReactRouter Date: November 21, 2023 Sum: React路由基础、路由导航、导航传参、嵌套路由配置 路由快速上手 1. 什么是前端路由 一个路径 path 对应一个组件 component 当我们在浏览器中访问一个 path 的时候&#xff0c;path 对应的组件会在页面中进行渲染 2. …

掌握你的Mac,iStat Menus带你了解mac系统状态

iStat Menus for mac是一款强大的mac系统状态监控工具&#xff0c;它能够提供实时的系统信息和性能监测&#xff0c;帮助用户全面了解和管理自己的Mac设备。无论是CPU、内存、网络、硬盘还是传感器数据&#xff0c;iStat Menus都能直观地展示&#xff0c;并且支持自定义布局和样…

easyExcel 注解开发 快速以及简单上手 以及包含工具类

easyExcel 简单快速使用 1. mevan 这里版本我这里选的是 poi 4.1.2和 ali的easyexcel 的 3.3.1。 因为阿里easy是根据poi的依赖开发的有关系&#xff0c;两者需要对应要不然就会有很多bug和错误在运行时发生。需要版本对应&#xff0c;然而就是easy的代码也会有bug这个版本是比…

什么软件可以去视频水印?分享3个超实用去水印工具

什么软件可以去视频水印&#xff1f;短视频已然成为了我们日常生活或工作的一部分&#xff0c;当我们遇到感兴趣的视频想保存发现无法保存&#xff0c;或者保存后留有水印&#xff0c;非常影响我们视频观看度和分享欲&#xff0c;为了解决这一问题&#xff0c;许多针对视频水印…

基于单片机预费电表控制系统(proteus仿真+源程序)

一、系统方案 1、本设计采用这51单片机作为主控器。 2、采集电量值送到液晶1602显示。 3、按键设置预设值&#xff0c;实际使用电量超过设置&#xff0c;蜂鸣器报警。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 void LCD_init(void) { …

MySQL数据库【一】

博学而笃志&#xff0c;切问而近思 文章目录 数据库简介服务器、数据库以及表的关系连接数据库数据库操作命令创建数据库查看数据库创建语句查看数据库使用数据库修改数据库删除数据库 数据库字符集和校验规则查看系统默认字符集查看系统默认校验规则查看数据库支持的字符集查看…

Shell编程基础 – for循环

Shell编程基础 – for循环 Shell Scripting Essentials - for Loop 大多数编程语言都有循环的概念和语句。如果想重复一个任务数十次&#xff0c;无论是输入数十次&#xff0c;还是输出数十次&#xff0c;对用户来说都不现实。 因此&#xff0c;我们考虑如何用好Bash Shell编…

Python入门学习篇(四)——if详解

if详解 1 单项分支 1.1 语法结构 if 条件:逻辑代码(条件为真时执行的代码) # 注: 如果条件不满足,那么则不执行if下面的逻辑代码1.2 示例代码 username input("请输入您的用户名: ") if username "admin":print("管理员登录成功")1.3 运行…

Vue框架学习笔记——事件处理:v-on指令+methods

文章目录 前文提要事件处理的解析过程&#xff0c;v-on:事件名样例代码如下&#xff1a;效果展示图片&#xff1a;v-on:事件名"响应函数"v-on简写形式响应函数添加响应函数传参占位符"$event"注意事项 前文提要 本人仅做个人学习记录&#xff0c;如有错误…

【追求卓越02】数据结构--链表

引导 今天我们进入链表的学习&#xff0c;我相信大家对链表都很熟悉。链表和数组一样&#xff0c;作为最基础的数据结构。在我们的工作中常常会使用到。但是我们真的了解到数组和链表的区别吗&#xff1f;什么时候使用数组&#xff0c;什么时候使用链表&#xff0c;能够正确的选…

深入了解MD5加密技术及其应用与局限

一、MD5简介 MD5&#xff08;Message Digest Algorithm 5&#xff09;是一种单向散列函数&#xff0c;由美国密码学家罗纳德李维斯特&#xff08;Ronald Linn Rivest&#xff09;于1991年发明。它主要用于将任意长度的消息映射成固定长度的摘要&#xff0c;从而实现消息的完整…

C++STL库常用详解与原理

CSTL库 学习方法&#xff1a;使用STL的三个境界&#xff1a;能用&#xff0c;明理&#xff0c;能扩展。 常用库 库名称所需头文件数据结构string#include<string>串vector#include<vector>动态数组list#include<list>带头双向循环链表queue#include<queu…

又3本“On Hold”期刊被剔除!这本Elsevier旗下中科院2区TOP仍在调查中!

【SciencePub学术】 此前&#xff0c;继又2本期刊被“On Hold”&#xff01;标识后&#xff0c;仍处于“On Hold”状态的期刊有8本&#xff0c;其中包括4本SCI期刊和4本ESCI期刊。 2023年11月20日&#xff0c;科睿唯安更新了Web of Science核心期刊目录。 本次11月更新共64本期…

12 网关实战:Spring Cloud Gateway基础理论

为什么需要网关? 传统的单体架构中只有一个服务开放给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,那么作为客户端如何去调用这些微服务呢?如果没有网关的存在,只能在本地记录每个微服务的调用地址。 无网关的微服务架构往往存在以下问题: 客户端多次请求…

git命令 cherry-pick

参考&#xff1a;https://blog.csdn.net/weixin_42585386/article/details/128256149 https://blog.csdn.net/weixin_44799217/article/details/128279250 merge和cherry-pick的区别&#xff1a; merge&#xff1a;是把某一个代码分支完全合并到当前的代码分支。完全合并的意…

电子学会C/C++编程等级考试2022年03月(二级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:温度统计 现有一段时间的温度数据,请统计指定温度出现的次数。 时间限制:1000 内存限制:65536输入 第一行一个整数n,表示温度数据的个数。(0 < n ≤ 200) 第二行n个整数,以空格分隔,每个整数表示一个温度,温度的范围大…

详细介绍如何使用深度学习自动车牌(ALPR)识别-含(数据集+源码下载)

深度学习一直是现代世界发展最快的技术之一。深度学习已经成为我们日常生活的一部分,从语音助手到自动驾驶汽车,它无处不在。其中一种应用程序是自动车牌识别 (ALPR)。顾名思义,ALPR是一项利用人工智能和深度学习的力量自动检测和识别车辆车牌字符的技术。这篇博文将重点讨论…

WordPress无需插件禁用WP生成1536×1536和2048×2048尺寸图片

我们在使用WordPress上传图片媒体文件的时候&#xff0c;是不是看到媒体库中有15361536和20482048的图片文件&#xff0c;当然这么大的文件会占用我们的服务器空间&#xff0c;如何禁止掉呢&#xff1f; function remove_default_image_sizes( $sizes) {unset( $sizes[1536x15…