【问题标题】:downloading with curl using multiple connections使用多个连接通过 curl 下载
【发布时间】:2012-01-12 19:33:13
【问题描述】:

我正在尝试将多 GB 文件从一台服务器传输到另一台服务器;问题是RTT是150ms+。我已经尝试过使用 aria2,但它仅限于 16 个连接,lftp 没有任何防止传输停滞的保护。

我想知道是否可以使用 curl cli 下载一个具有多个连接的文件。

【问题讨论】:

    标签: curl download file-transfer


    【解决方案1】:

    这是可能的。使用 curl 中的 -I 选项获取总文件大小。

    然后你可以在一个 shell 中 fork 多个进程,每个 curl 连接都有一个不同的 Content-Length 标头来下载文件的不同部分。

    所有任务完成后,将所有下载切片合并为一个大文件。

    我编写了一个简单的脚本,它可以在这里找到mcurl.sh,使用-s 选项,您可以指定创建多少任务来下载大文件。

    【讨论】:

    • 您的意思是不同的Range: 标头,对吗?当您要求 curl 仅下载远程资源的“范围”时,这就是 curl 所使用的。
    • 链接脚本不能正常工作(用一些小文本文件测试)。
    【解决方案2】:

    不,curl 工具没有内置的这种能力。要使用 curl 执行此操作,您需要使用范围下载多次调用它。

    (哦,顺便说一句,大 RTT 很少能解释为什么普通 TCP 传输很慢)

    【讨论】:

      猜你喜欢
      • 2015-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-08
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多