v2.1.0
BaiduPCS-Rust v2.1.0 发行说明
发布日期:2026-06-15
🎯 版本说明
v2.1.0 是在 v2.0.0(多账号)基础上的功能版本,核心是引入全新的**分享同步(Share Sync)**能力,并带来一批围绕分享同步的稳定性、进度显示与风控修复,以及 Windows 控制台日志乱码修复。
- 核心新功能:分享同步(Share Sync)——订阅分享链接,周期 / 定时拉取并与上次快照对比差异,自动转存到网盘和 / 或下载到本地
- 稳定性:增量同步只同步变动文件、转存撞同名继续下载、重启自动续跑被中断的 run、删除订阅清理孤儿任务
- 进度显示:修复文件夹下载已下载翻倍(200%)与上传超过 100%,全站进度条统一钳到
[0,100] - 风控:列目录 / 拆批接入全局限速器,
errno=132大目录分块、errno=4超时退避,链接连续失效自动暂停轮询 - 体验:Windows 控制台日志不再出现
[2m、[32m等乱码
✅ 平滑升级:本版本不涉及
v2.0.0那样的不兼容数据迁移,从v2.0.x升级到v2.1.0无感知。分享同步会新建自己的数据表,与既有数据兼容。仍建议升级前按惯例备份数据目录(见下方「升级说明」)。
✨ 分享同步(Share Sync)
订阅第三方分享链接,按固定间隔(≥10 分钟)或每日定时拉取文件列表,与上次快照对比差异,自动把变更应用到网盘目录(转存)和 / 或本地目录(下载)。只同步变动的文件,不会整目录重复处理。
功能要点:
- 多账号隔离:订阅按
owner_uid归属与解析,多账号互不干扰,事件携带owner_uid。 - 双目标并行:单条订阅可同时配置「网盘 + 本地」两个目标;支持
include/exclude路径过滤,精确控制同步范围。 - 三种冲突策略:
overwrite(覆盖):直接覆盖目标中的同名文件versioned(新版本):保留旧文件为name(YYYYMMDD-HHMMSS).ext,写入新文件skip(跳过):目标已存在则不处理
- 删除行为可控:默认保留目标中的旧文件;可开启「分享者删除 → 目标也删除」。
- 实时进度与审计:子任务实时进度(速度 / 预计剩余时间),每次运行记录
added/modified/removed/failed计数与文件级run_item;通过 WebSocket 实时推送,断线 / 切页用 REST 轮询兜底。 - Web UI:
/share-sync页面,订阅列表 + 创建(复用转存对话框与 include/exclude 编辑器)+ 运行历史弹窗 + 内联子任务进度。
🐛 分享同步·稳定性与正确性修复
- 增量只同步变动文件:已同步目录里改动 / 新增单个文件时,只同步该文件,不再整目录重转存 + 重下载。
- 转存撞同名继续下载:目标已存在同名目录 / 文件时视为「已存在」并继续进入下载阶段,不再整批判失败。
- 增量单文件修复:修复增量新增单个文件被误判失败、以及网盘目录名翻倍(落到
/目标/目标/...)的问题。 - 进行中子任务列表:完成的文件夹不再被回包成「进行中」,切页 / 断线重连后状态一致。
- 重启自动续跑:后端重启后自动续跑被中断的 run,不再粗暴标失败。
- 删除订阅清理:删除订阅时清理名下内部转存 / 下载任务,避免孤儿脏数据。
🐛 风控与限速
- 全局限速器:列目录抓快照 / 拆批接入账号级全局限速器(leaky bucket),降低并发探测触发风控的概率。
- 大目录分块:删除大目录、整批转存自动分块以规避
errno=132;整批转存临时超时(errno=4)按退避自动重试。 - 轮询节奏:轮询抖动后强制不低于最小间隔,与自动备份对齐降低风控。
- 链接失效熔断:分享链接确定性失效连续 2 次自动暂停轮询,并在前端提供「恢复」按钮。
🐛 进度显示修复
- 文件夹下载不再翻倍:修复文件夹下载完成时「已下载」翻倍(200%)的聚合竞态——已完成子任务不再被重复计入活跃和。
- 上传不再超过 100%:上传「已上传」改用已完成分片之和(幂等),同一分片重传 /
upload_id过期重传不会重复累加,根治进度 >100%(如 142%)。 - 全站钳制:前端各进度条与后端
progress()统一钳到[0,100],作为防御兜底。
🐛 其他修复
- 转存任务归属:重启恢复转存任务时还原
is_internal,分享同步内部转存任务不再漏进转存管理列表。 - Windows 控制台日志乱码:Windows 下默认关闭控制台 ANSI 彩色输出,避免出现
[2m、[32m等转义字符;非 Windows 平台保留终端彩色,文件日志始终为纯文本。(感谢 @YYQHH PR #103) - 前端:文件列表滚动加载在请求失败后不再无限翻页;修复路由切换后
el-table列宽错位;修复npm run lint(ESLint v9 flat config)并清理零风险静态告警。
🔧 升级说明
Docker 用户
# 升级前建议先备份挂载的 data 卷
# 拉取指定版本镜像
docker pull komorebicarry/baidupcs-rust:v2.1.0
# 或使用 latest 标签
docker pull komorebicarry/baidupcs-rust:latest
# 重启容器
docker-compose down && docker-compose up -d二进制用户
从 Releases 页面下载对应平台的二进制文件,替换原有可执行文件后重启服务。
配置与数据
- 本版本无破坏性数据迁移,从
v2.0.x升级无需任何手动操作;分享同步会自动创建所需数据表。 - 升级仍建议按惯例备份
backend/config/与backend/wal/(Docker 用户备份挂载的data卷)。 - 默认端口仍为
18888,不影响现有反向代理 / 防火墙 / 书签。
📁 下载
| 平台 | 文件名 |
|---|---|
| Windows (x86_64) | BaiduPCS-Rust-v2.1.0-windows-x86_64.zip |
| Linux (x86_64) | BaiduPCS-Rust-v2.1.0-linux-x86_64.tar.gz |
| Linux (ARM64) | BaiduPCS-Rust-v2.1.0-linux-aarch64.tar.gz |
| macOS (x86_64) | BaiduPCS-Rust-v2.1.0-macos-x86_64.tar.gz |
| macOS (ARM64) | BaiduPCS-Rust-v2.1.0-macos-aarch64.tar.gz |
| Docker 镜像 | BaiduPCS-Rust-v2.1.0-docker.tar.gz |
完整更新日志:参见项目根目录的 CHANGELOG.md
问题反馈:欢迎通过 GitHub Issues 进行反馈