使用 aria2c 下载单个大文件

downloading a single large file with aria2c

我想下载一个大约 60GB 的文件。

我的网速是 100mbps,但下载速度没有占用我的全部带宽。

如果我使用 aria2c 下载这个单个文件,我可以利用增加的“每台服务器的连接数”吗? aria2c 似乎允许我使用 16 个最大连接数。此选项甚至可以用于下载单个文件吗?

我想象下载过程的方式就像 1 个连接尝试从文件的 1 个扇区下载,而另一个连接尝试从不同的扇区下载。基本上,并发下载的最佳数量是在达到主机带宽限制(我的是 100mbps)之前。当两个连接在他们正在下载的扇区发生冲突时,aria2c 会立即看到该特定扇区已经下载并跳到另一个扇区。这是对单个文件使用多个连接时的结果吗?

Is this how it plays out when using multiple connections for a single file?

HTTP 标准提供 Range request header, which allow to say for example: I want part of file, starting at byte X and ending at byte Y. If server do support this gimmick then it respond with 206 Partial Content. Thus knowing length (size) of file (see Content-Length) 可以放置部分,使它们不相交并覆盖整个文件。

请注意,并非所有服务器都支持此噱头。您需要检查您要下载的服务器托管文件是否这样做。这可以使用 HEAD 请求完成,HTTP range requests 使用 curl

提供示例
curl -I http://i.imgur.com/z4d4kWk.jpg

HTTP/1.1 200 OK
...
Accept-Ranges: bytes
Content-Length: 146515

如果您在 Accept-Ranges 中有 bytes,这意味着服务器确实有支持。如果您希望任何其他工具能够发送 HEAD 请求并向您提供响应 headers.