v2.1.2
BaiduPCS-Rust v2.1.2 发行说明
发布日期:2026-06-30
🎯 版本说明
v2.1.2 是在 v2.1.1 基础上的维护版本,内容以分享同步批量下载可靠性与下载引擎收尾/续传修复为主:大目录分享同步支持整批 submit 合并任务、本地目标自动补同步,并修复断点续传在文件被截断时写出稀疏空洞、以及任务 100% 后双 finalize 竞争导致误报与文件损坏等问题。
- 分享同步·批量下载:≥2 文件走整批 submit(N→1 任务),batch 失败退化为逐文件;同步前校验本地缺失/大小不一致文件并自动补下载
- 下载·续传安全:恢复时目标文件缺失或截断则重置分片进度,避免损坏文件被误标完成
- 下载·收尾竞争:修复 100% 后双 finalize 抢同一临时文件;收尾窗口暂停也作废旧 epoch;明文文件不再误报「解密失败」
- 错误提示:分享链接
errno=-9明确为「分享链接失效或提取码错误」
✅ 平滑升级:本版本不涉及任何不兼容的数据迁移,从
v2.1.1升级无感知。仍建议升级前按惯例备份数据目录(见下方「升级说明」)。
✨ 分享同步·批量下载可靠性
- 整批 submit 合并任务:组内文件数 ≥2 时走
submit_transfer_batch/submit_download_batch,将 N 次转存/下载任务合并为 1 次(transfer 内部按父目录分 batch),大目录场景显著减少任务数与鉴权开销;batch 提交失败时自动退化为逐文件 submit,quota / 本地磁盘满等边界场景不误伤整组。 - 本地目标自动补同步:同步前扫描本地目标目录,将「快照未变但本地文件缺失或大小不一致」的条目纳入
modifieddiff 重新下载,避免上次中断留下的半成品被误判为已同步。 - 分片下载兜底:大批量文件夹下载中,失败清理/重试竞态可能删掉半成品文件或其父目录;分片线程在写入前自动
create_dir_all父目录,避免单个缺失目录拖垮整批分享同步。 - 错误分类增强:临时性服务端超时等关键字纳入
Transient分类,分享同步可正确自动重试;errno=-9提示改为「分享链接失效或提取码错误」,便于用户区分链接问题与网络抖动。
🐛 下载引擎修复
- 断点续传安全校验:恢复下载时,若分片已记录进度但目标文件缺失或长度不足(常见于大批量下载中失败清理/重试竞态),现重置该分片进度从头重下——避免
create(true)+seek续传在文件前段写出全 0 稀疏空洞,却被仅按文件大小判定的完成校验误标为成功。 - 双 finalize 竞争(任务 100% 后):
- 引入
finalize_spawned原子门闩,防止两个收尾协程并发 rename/解密同一临时文件导致误报失败或产出损坏文件。 - 文件夹恢复时「无可用槽位」早退分支也复位
finalize_spawned,避免状态残留阻塞后续调度。 - 收尾窗口(
finalize_spawned=true但尚未进入Decrypting)内暂停也递增decrypt_epoch作废旧协程,与cancel_tasks_by_group的 epoch 失效逻辑对齐。
- 引入
- 明文误报文案:明文文件收尾阶段只有 rename、不走解密,统一拼成「解密失败」会误导用户;现仅加密文件报「解密失败」,明文一律报「文件收尾失败」。
🔧 工程
- 新增分享同步诊断脚本(
scripts/目录):share_sync_probe.py— 探测分享链接可达性与快照抓取share_sync_status.py— 查看订阅/运行状态share_sync_restore_snapshot.py— 快照恢复工具
🔧 升级说明
Docker 用户
# 升级前建议先备份挂载的 data 卷
# 拉取指定版本镜像
docker pull komorebicarry/baidupcs-rust:v2.1.2
# 或使用 latest 标签
docker pull komorebicarry/baidupcs-rust:latest
# 重启容器
docker-compose down && docker-compose up -d二进制用户
从 Releases 页面下载对应平台的二进制文件,替换原有可执行文件后重启服务。
配置与数据
- 本版本无破坏性数据迁移,从
v2.1.1升级无需任何手动操作。 - 升级仍建议按惯例备份
backend/config/与backend/wal/(Docker 用户备份挂载的data卷)。 - 默认端口仍为
18888,不影响现有反向代理 / 防火墙 / 书签。
📁 下载
| 平台 | 文件名 |
|---|---|
| Windows (x86_64) | BaiduPCS-Rust-v2.1.2-windows-x86_64.zip |
| Linux (x86_64) | BaiduPCS-Rust-v2.1.2-linux-x86_64.tar.gz |
| Linux (ARM64) | BaiduPCS-Rust-v2.1.2-linux-aarch64.tar.gz |
| macOS (x86_64) | BaiduPCS-Rust-v2.1.2-macos-x86_64.tar.gz |
| macOS (ARM64) | BaiduPCS-Rust-v2.1.2-macos-aarch64.tar.gz |
| Docker 镜像 | BaiduPCS-Rust-v2.1.2-docker.tar.gz |
完整更新日志:参见项目根目录的 CHANGELOG.md
问题反馈:欢迎通过 GitHub Issues 进行反馈