从 #23 拆出的第 2 部分,单独跟踪。
需求
面向「大量零散小文件 / 整个目录」的收发场景,在传输前自动压缩打包、接收端自动解压,用户无需手敲压缩参数。弱网环境下能显著减少体积、缩短耗时。
- 上传:本地
tar(可选 gzip)→ 传一个归档 → 远端自动解压到目标目录
- 下载:远端
tar 打包 → 传回 → 本地自动解压
为什么从 #23 暂缓拆出
进程监控(#23 第 1 部分)已实现,但压缩传输的复杂度和边界明显更高,需要单独设计:
- 依赖检测:远端是否有
tar/gzip/zstd,没有时如何降级
- 临时文件与清理:两端的临时归档落盘位置、权限、失败/中断后的回滚清理
- 进度反馈退化:现在是逐文件进度,打包后变成一个大 blob,中途看不到进展,需要重新设计进度展示(或用
tar 的 checkpoint)
- 正确性:符号链接、权限位、稀疏文件、超长路径、文件名编码等保真问题
- 与现有 SFTP 逐文件传输的取舍:何时自动走压缩通道、何时走普通 SFTP(阈值?开关?)
开放问题
- 触发方式:自动(按文件数/总大小阈值)还是用户显式勾选「压缩传输」?
- 压缩算法:gzip(通用)还是 zstd(更快,但远端不一定有)?
- 是否仅对「目录 / 多选」启用,单个大文件不压缩?
欢迎讨论设计方向。
需求
面向「大量零散小文件 / 整个目录」的收发场景,在传输前自动压缩打包、接收端自动解压,用户无需手敲压缩参数。弱网环境下能显著减少体积、缩短耗时。
tar(可选 gzip)→ 传一个归档 → 远端自动解压到目标目录tar打包 → 传回 → 本地自动解压为什么从 #23 暂缓拆出
进程监控(#23 第 1 部分)已实现,但压缩传输的复杂度和边界明显更高,需要单独设计:
tar/gzip/zstd,没有时如何降级tar的 checkpoint)开放问题
欢迎讨论设计方向。