v2.1.6
BaiduPCS-Rust v2.1.6 发行说明
发布日期:2026-07-28
🎯 版本说明
v2.1.6 是在 v2.1.5 基础上的小版本更新,聚焦下载与文件操作的稳定性,修复两个「重要」问题:
- 多域双 STOKEN 导致删除等操作报 errno=-6(重要):
v2.1.5已让 REST 接口一律携带 STOKEN,但扫码登录的多域账号可能在不同域下保存了两个不同值的 STOKEN,全部发出反而命中错误的那个,删除等操作仍报errno=-6(issue #130 追加反馈)。 - 限速/低带宽下载被「24h 绝对超时」误杀(重要):把「下载慢但仍在推进」的任务误判为失败并清理临时目录,本版本改为进度驱动的停滞判定,正常慢速下载不再被误杀。
✅ 平滑升级:本版本不涉及任何不兼容的数据迁移,从
v2.1.x升级无感知。新增的下载停滞阈值有合理默认值(30 分钟),无需任何手动配置。仍建议升级前按惯例备份数据目录(见下方「升级说明」)。
🐛 问题修复
账号·多域双 STOKEN 导致删除报 errno=-6(重要)
问题:v2.1.5 已让所有 REST 接口的 Cookie 头携带 STOKEN,但部分扫码登录的多域账号仍在删除文件等操作上报 errno=-6。
根因:这类账号在 passport(.baidu.com)与 pan(pan.baidu.com)两个域下各自保存了一份 STOKEN,两者的值可能不同。此前收集 Cookie 时按「整条 k=v 去重」,会把两个域的 STOKEN 一并发出;百度 filemanager 命中了错误的那一个,于是仍返回 errno=-6(对照:BaiduPCS-Go 只发单个 stoken 故正常,见 issue #130)。
修复:
- 按名称去重:收集各域 Cookie 时改为按 cookie 名称去重(保留首次出现),避免多域同名 Cookie 同时进入 Cookie 头。
- 强制 STOKEN 唯一:以登录时保存、已验证可用的
user_auth.stoken为准,清除 jar 中混入的另一域 STOKEN,确保只发出一个正确的 STOKEN。 - PANPSC 覆盖:
PANPSC同样以最新预热值覆盖 jar 中可能存在的多域旧值。 - 可观测:检测到 jar 里出现多个 STOKEN(正是本问题的触发条件)时打印
warn日志,便于上线后从用户日志确认修复路径生效。
下载·限速/低带宽任务被绝对超时误杀(重要)
问题:下载慢(低带宽或被百度限速)但仍在持续推进的任务会被误判为失败,且清理临时目录还会连带导致同批其余「在下」文件报 31066。
根因:旧逻辑是「从下载开始算满 24h 就一刀切判失败」的绝对超时,它只看时间、不看是否仍有字节进展,于是把「慢但正常」的下载也一并杀掉。
修复:改为进度驱动的停滞判定——
- 只认「零进展」:维护「上次观察到的已下载字节总量」与「上次有进展的时刻」;只要字节总和仍在变化就把计时器归零,只有连续
stall_timeout_secs完全无进展才判「停滞」。正常下载即使很慢也会持续有字节增长,永远不会触发;只有真正 0 KB/s 卡死才会被清掉,防卡死能力不丢。 - 用户暂停不计时:只有「有活跃下载」时停滞时钟才累积;用户主动暂停的任务不算活跃,不会被误判为停滞。
- 先取消 worker 再清理:判定停滞后先取消底层下载 worker,再清理临时目录,避免 worker 继续对着即将被清理的临时目录刷
Locate、刷出满屏31066。 - 中性文案:失败提示改为「下载长时间无进展,已判定为停滞并停止;可稍后重试」,只陈述现象与下一步,不臆测会员/带宽等原因。
- 可调阈值:默认停滞阈值 30 分钟,可用环境变量
BAIDUPCS_DOWNLOAD_STALL_TIMEOUT_MINS(取值 > 0)覆盖。
🔧 升级说明
Docker 用户
# 升级前建议先备份挂载的 data 卷
# 拉取指定版本镜像
docker pull komorebicarry/baidupcs-rust:v2.1.6
# 或使用 latest 标签
docker pull komorebicarry/baidupcs-rust:latest
# 重启容器
docker-compose down && docker-compose up -d二进制用户
从 Releases 页面下载对应平台的二进制文件,替换原有可执行文件后重启服务。
配置与数据
- 本版本无破坏性数据迁移,从
v2.1.x升级无需任何手动操作。 - 升级仍建议按惯例备份
backend/config/与backend/wal/(Docker 用户备份挂载的data卷)。 - 默认端口仍为
18888,不影响现有反向代理 / 防火墙 / 书签。 - 若你此前遇到多域账号删除报
errno=-6:升级后直接重试即可;如仍异常,可为该账号重新扫码登录以刷新凭证。 - 下载停滞阈值默认 30 分钟,如你的网络环境正常但有超长时间零进展的场景,可用
BAIDUPCS_DOWNLOAD_STALL_TIMEOUT_MINS调大。
📁 下载
| 平台 | 文件名 |
|---|---|
| Windows (x86_64) | BaiduPCS-Rust-v2.1.6-windows-x86_64.zip |
| Linux (x86_64) | BaiduPCS-Rust-v2.1.6-linux-x86_64.tar.gz |
| Linux (ARM64) | BaiduPCS-Rust-v2.1.6-linux-aarch64.tar.gz |
| macOS (x86_64) | BaiduPCS-Rust-v2.1.6-macos-x86_64.tar.gz |
| macOS (ARM64) | BaiduPCS-Rust-v2.1.6-macos-aarch64.tar.gz |
| Docker 镜像 | BaiduPCS-Rust-v2.1.6-docker.tar.gz |
完整更新日志:参见项目根目录的 CHANGELOG.md
问题反馈:欢迎通过 GitHub Issues 进行反馈