这个问题是后续问题如何使用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