Skip to content

v2.1.0

Choose a tag to compare

@github-actions github-actions released this 15 Jun 10:02
· 72 commits to main since this release

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)

感谢 @hamr-hub 贡献分享同步功能(PR #98#99#102)。

订阅第三方分享链接,按固定间隔(≥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 进行反馈