5月29日 22:48

cURL 如何处理大文件下载和断点续传?

断点续传:curl -C - -O URL(-C - 自动检测已下载部分继续)。原理:cURL 发 Range 头请求剩余部分,服务器返回 206 Partial Content。首次下载中断后重新执行同一命令即可续传。大文件优化:--limit-rate 2M 限速、--max-time 3600 超时保护、-# 显示进度条。前提:服务器必须支持 Range 头。

追问

怎么判断服务器是否支持断点续传?

curl -I URL 看响应头:Accept-Ranges: bytes 表示支持,没有则不支持。

下载中断后文件名不对怎么办?

-O 用 URL 最后一段作为文件名,重定向后可能不对。用 -o 指定文件名,或 -L 跟随重定向后再用 -O。

如何并行下载大文件?

cURL 本身不支持分段并行下载。用 aria2c -x 16 -s 16 URL(16 连接并行)。或手动分段 curl -r 并合并。

下载到一半磁盘满了怎么办?

cURL 不会自动清理部分文件。脚本中 df -h 检查磁盘空间,超过 90% 停止下载并告警。大文件场景用 --max-filesize 限制大小。

如何验证下载文件完整性?

curl URL -o file && shasum -a 256 -c checksum.txt。或 curl URL | sha256sum 对比预期哈希。

标签:cURL