大文件跨公网传输, 先看这 5 个检查项
跨公网传输大文件的失败, 往往不是因为工具不好, 而是准备不足。下面 5 项检查, 可以覆盖绝大多数翻车场景。
1. 协议选对了吗
对比一下常见选择的实际表现:
| 协议 | 加密 | 断点续传 | 适用场景 |
|---|---|---|---|
| SFTP (SSH) | ✓ | ✓ | 跨公网默认选择 |
| FTPS | ✓ | ✓ | 需要兼容既有 FTP 体系 |
| FTP | ✗ | ✓ | 仅内网可信环境 |
跨公网请默认使用 SFTP, 并确认算法套件是 aes256-gcm 或 chacha20-poly1305 级别。
2. 校验过完整性吗
传输成功 ≠ 文件正确。传到对端后先核对摘要:
# 发送端
sha256sum app-release-8.0.tar.gz > app-release-8.0.tar.gz.sha256
# 接收端
sha256sum -c app-release-8.0.tar.gz.sha256
在 Xftp 的会话属性里可以开启"传输完成后自动校验", 失败自动重传, 能省掉这一步人工核对。
3. 断点续传准备好了吗
几 GB 的文件在公网上传一小时以上很常见, 中途抖动几乎必然发生:
- 开启断点续传, 失败后从断点继续而不是重传
- 传输队列开启自动重试, 重试间隔建议 30 秒起
- 避免传输过程中修改本地源文件, 否则校验必然失败
4. 带宽会不会挤爆业务
上班时间跑满带宽, 影响的是所有人。建议:
- 设置传输限速, 保留至少 30% 带宽给业务
- 大包传输安排在业务低峰期
- 多个小文件先打包成归档, 减少连接建立开销
5. 传完之后谁触发下一步
上传只是部署的前半程。用传输钩子把后半程接上:
# 上传完成后在远端执行
cd /opt/app/release && tar -xzf app-release-8.0.tar.gz && ./restart.sh
小技巧
在 Xftp 的会话属性里配置“传输后执行远端命令”, 可以把解压、切换软链、重启服务串成一步。
把这 5 项存进自己的上线检查清单,大文件传输基本不会再成为发布流程里的不确定因素。