Skip to content

v2.1.2

Choose a tag to compare

@github-actions github-actions released this 30 Jun 03:39
· 46 commits to main since this release

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 升级无感知。仍建议升级前按惯例备份数据目录(见下方「升级说明」)。


✨ 分享同步·批量下载可靠性

感谢 @hamr-hub 贡献的分享同步批量下载可靠性修复(PR #121)。

  • 整批 submit 合并任务:组内文件数 ≥2 时走 submit_transfer_batch / submit_download_batch,将 N 次转存/下载任务合并为 1 次(transfer 内部按父目录分 batch),大目录场景显著减少任务数与鉴权开销;batch 提交失败时自动退化为逐文件 submit,quota / 本地磁盘满等边界场景不误伤整组。
  • 本地目标自动补同步:同步前扫描本地目标目录,将「快照未变但本地文件缺失或大小不一致」的条目纳入 modified diff 重新下载,避免上次中断留下的半成品被误判为已同步。
  • 分片下载兜底:大批量文件夹下载中,失败清理/重试竞态可能删掉半成品文件或其父目录;分片线程在写入前自动 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 进行反馈