You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

curl并行下载时能否在配置文件中为各请求设置不同Range头?

curl并行下载时如何为每个请求配置独立的Range头?

这是配置方式错误导致的,curl默认会把配置文件里的参数全局累加,不是按你写的分段对应每个请求。你现在的写法会让所有请求带上三个Range头,而服务器一般只会识别第一个,所以才会出现所有分片都用0-1024范围的情况。

正确配置方式

要给每个并行请求单独设置参数,需要用next指令分隔不同的请求块,每个next之后的参数只作用于下一个请求。修正后的config.txt应该是这样:

url = "http://www.example.com"
header = "Range: bytes=0-1024"
output = "chunk1"
next
url = "http://www.example.com"
header = "Range: bytes=1025-2049"
output = "chunk2"
next
url = "http://www.example.com"
header = "Range: bytes=2050-3074"
output = "chunk3"

验证效果

执行你原来的命令即可:

curl --parallel --parallel-max 60 --config config.txt

此时每个请求会携带各自对应的Range头,下载对应的分片内容。

原配置失效原因

curl读取配置文件时,重复的参数(比如url、header、output)会被累加而非覆盖或分段。你原来的写法相当于给每个请求都添加了三个Range头:

Range: bytes=0-1024
Range: bytes=1025-2049
Range: bytes=2050-3074

而HTTP服务器处理多个Range头时,通常只会解析第一个,所以所有下载请求都用了0-1024的范围。

内容的提问来源于stack exchange,提问作者TryingHard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 13:35:24