对于大文件下载,aria2 支持 -x 16 -s 32,这些选项用于多线程多块下载。
使用 python asyncio,我们可以通过获取文件大小、根据文件大小创建块部分并并行请求每个块到临时文件并将它们连接起来来做到这一点
可以使用curl/wget + bash +xargs/parallel 实用程序完成同样的操作
使用
- 卷头请求并获取总大小
- 创建块范围
- curl --range 选项并行下载每个块(在最新的curl -Z支持并行中,或者在旧的curl中,使用xargs -P或gnu parallel -J选项)
- 结合所有部分
任何人都可以帮助创建 bash 函数吗故障安全 - 在服务器负载和空块或临时 ip 禁止的情况下进行错误处理和重试,同时 True 循环直到文件成功下载
有人可以解释一下:在 idm 和 aria2 等工具的情况下,我读过它们通过创建与服务器的多个连接来下载 -x 16 和 -s 32 选项如何工作。创建多个连接如何用于多线程并行下载以及我们如何使用curl + bash实现它