断点续传与传输校验是什么
大文件跨公网传输的核心要求只有两条:断了能接着传,传完能证明文件是完整的。用 curl -C - 或 wget -c 做 HTTP 断点续传的前提是服务端支持 Range 请求;rsync 则通过差量校验只传变化部分,--partial 保留未完成的部分文件,--append-verify 会在校验已有内容的基础上追加。传输前后两端各算一次摘要并逐字对比,是目前最省事也最可靠的成功判据。
基本信息
| 适用平台 | Linux、macOS、Windows 10 及以上(curl、wget、rsync) |
|---|---|
| 场景 | 大文件续传与完整性校验 |
| 常用组合 | curl -C -、wget -c、rsync --partial / --append-verify、sha256sum |
| HTTP 前提 | 服务端需返回 Accept-Ranges 支持范围请求 |
| rsync 前提 | 两端均安装 rsync,且 SSH 或 rsync 服务可达 |
| 判断标准 | 两端摘要完全一致才算传输成功 |
典型使用场景
- 跨公网拉取镜像、数据集等大文件,断线后从断点继续。
- 向客户或分支传输大备份包,传完用摘要证明未被截断。
- 在弱网环境下分批搬运文件,减少重复传输的量。
- 迁移虚拟机磁盘映像,用 rsync 增量补上变更的块。
- 校验下载的安装包与官方公布的摘要是否一致。
续传与校验流程
续传与校验流程
curl -sSI https://example.com/big.iso | grep -i accept-ranges # 先确认支持续传
curl -sS -C - -o big.iso https://example.com/big.iso # HTTP 断点续传
wget -c https://example.com/big.iso # wget 续传写法
rsync -avP --partial big.iso ops@10.0.0.5:/data/ # 保留未完成部分
rsync -avP --append-verify big.iso ops@10.0.0.5:/data/ # 校验已有部分后追加
sha256sum big.iso # 记录本地摘要
ssh ops@10.0.0.5 'sha256sum /data/big.iso' # 取远端摘要逐字对比
ls -l big.iso # 核对大小作为辅助判据工具与选项对照
| 工具或选项 | 作用 | 使用要点 |
|---|---|---|
| curl -C - | HTTP 断点续传 | 服务端必须支持范围请求,否则从头下载 |
| wget -c | 续传下载 | 与 -c 组合使用最省事 |
| --partial | 保留未完成文件 | 断点后再次执行可以接着传 |
| --append-verify | 校验后追加 | 大文件续传推荐,比 --append 安全 |
| --inplace | 就地写入 | 省临时空间,但中断后目标文件是新旧混合 |
| sha256sum | 完整性校验 | 两端结果逐字比对才算成功 |
HTTP 断点续传能否生效取决于服务端:先 curl -I 看响应头是否返回支持范围请求。不支持时加 -C - 会静默从头下载,白等一场。
rsync 默认先写临时文件再改名,中断不会破坏目标;一旦加了就地写入或纯追加选项,目标文件在中断时可能处于新旧混合状态,重要数据先做快照再传。
摘要对比必须同算法、同文件:只比文件大小远远不够,截断、错位写入都可能得到相同大小,却无法通过校验。