通过单个连接与 wget 并行下载文件

通过单个连接与 wget 并行下载文件

这个问题是后续问题如何使用wget同时下载多个文件?

与这个问题类似,我需要下载很多文件。根据上面接受的答案,建议使用cat url-list | parallel -j8 wget {}.但这需要为每个 URL 建立一个 TCP 连接和一次 https/TLS 协商,这对客户端和服务器端都是一种浪费。

如果/由于所有 URL 都位于同一服务器上,则可以GET /object.txt通过单个 TCP / HTTPs 连接对它们进行多个查询。

问题:有什么方法可以用 wget 做到这一点吗?

答案1

Wget 默认执行此操作(--no-http-keep-alive将其关闭)。如果多个连续的 URL 位于同一服务器上,则它会重用同一连接(假设服务器愿意)。

您需要告诉parallel调用 wget 的次数更少。传递-X以使其在每次调用中聚集参数。

cat url-list | parallel -j8 -X wget

相关内容