BaiduPCS-Go 上手:在终端里管理百度网盘
【免费下载链接】BaiduPCS-Goiikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go
你有一台笔记本或服务器,需要把本地文件批量送进百度网盘,再把别人分享的资源转存到自己网盘里。BaiduPCS-Go 是一个用 Go 写的百度网盘命令行工具,把上传、下载、转存、多账号切换都做成了终端命令:登录一次之后可以反复调用,也方便直接写进脚本里。
快速起步:安装与登录一次跑通
先确认本机装好了 Go 环境。下面三条命令把仓库拉下来并编译出可执行程序:
git clone https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go cd BaiduPCS-Go go build执行完,当前目录会出现 BaiduPCS-Go 可执行文件(Windows 下带 .exe)。不想编译也可以直接取官方发布的预编译版本。
程序不带参数直接运行,会进入仿 Linux shell 的交互模式,提示符是BaiduPCS-Go >,登录后会带上工作目录和账号 ID。交互模式下敲命令不用带BaiduPCS-Go前缀,比如直接输入ls或cd /我的资源。另外注意把终端编码设为 UTF-8,否则中文输出会乱码。
登录推荐用 cookies 方式,成功率最高。用浏览器登录 pan.baidu.com,从 cookie 里复制整段值,然后执行:
BaiduPCS-Go login -cookies="BAIDUID=...; BIDUPSID=...; BDUSS=...; STOKEN=..."两个易错点:cookies 必须在百度网盘页面(pan.baidu.com)获取,在百度首页拿的不一定有效;STOKEN 是 cookie 里的一个字段,不是 bdstoken,拿到的值里没有大写字母多半是拿错了。
另外两种方式一句话带过:手上只有 BDUSS 的话,用login -bduss=你的BDUSS -stoken=你的STOKEN;交互式login(账号密码)已长期不维护,不推荐。
登录成功后执行who,能输出当前账号信息就说明整条链路跑通了。之后所有操作都可以BaiduPCS-Go加子命令的方式执行。
高频任务三连:上传、下载、转存
下面三个任务是日常最高频的操作,每个都按目标、操作、验证、变体四段走。
本地上传:一条命令送文件进网盘
【目标】把本地文件或整个目录上传到网盘指定目录。
【操作】把本地的 report.pdf 上传到网盘的 /工作文档 目录:
BaiduPCS-Go upload ./report.pdf /工作文档【验证】上传结束后执行ls /工作文档,看到 report.pdf 出现在列表里即成功。
【变体】要传整个本地目录,直接把目录路径作为参数。同名文件默认跳过,加--policy rsync可以只跳过大小未变化的文件、有变化的自动覆盖。
网盘下载:整个目录拉回本地
【目标】把网盘里的文件或整个目录保存到本地。
【操作】下载 /我的资源 目录下的一个视频:
BaiduPCS-Go d /我的资源/1.mp4【验证】文件默认落在程序所在目录的 download/ 下,打开该目录确认文件存在且大小正常。想换保存位置,先执行config set -savedir D:/Downloads(Windows 路径请用正斜杠)。
【变体】下载整个目录就传目录路径:BaiduPCS-Go d /我的资源。下载支持断点续传,中断后重新执行同一命令即可续传;本地已存在的同名文件会自动跳过。
分享转存:不打开浏览器保存别人的资源
【目标】完成百度网盘转存:把分享链接里的文件直接存进自己的网盘。
【操作】先切到想存放文件的目录,再执行 transfer——转存只保存到当前工作目录,不能指定目标路径:
BaiduPCS-Go cd /收藏 BaiduPCS-Go transfer https://pan.baidu.com/s/xxxxx 提取码【验证】执行ls,看到转存进来的文件即成功。
【变体】链接自带?pwd=提取码时可以直接传整条链接,新版还支持分享口令格式。转存完成后接一条d命令,就能把刚转存的文件继续拉回本地。
性能调优:按账号类型设置并发参数 ⚡
先说结论:这个工具不提供超出官方客户端的提速,配置的目的是让下载稳定,而不是"更快"。
| 参数 | 普通用户 | SVIP | 说明 |
|---|---|---|---|
| max_parallel | 1 | 10~20 | 单文件下载并发线程数,SVIP 不建议超过 20 |
| max_download_load | 1 | 1~2 | 同时下载的文件数 |
| cache_size | 64KB | 1MB | 缓存大小 |
| savedir | 自定义 | 自定义 | 下载保存目录 |
普通用户把并发拉高并不会真提速:短时间快一下之后会触发限速,账号可能在几个小时甚至几天内所有客户端都接近 0 速。SVIP 按实际带宽把 max_parallel 调到 10 以上,配合 max_download_load 1~2,通常可以稳定满速。
SVIP 用户想一次把两个并发参数都设好:
BaiduPCS-Go config set -max_parallel 15 -max_download_load 2配错了可以config reset一键恢复默认;单独执行config可以查看当前全部配置值。
排坑手册:登录、下载与上传常见问题 🧰
| 现象 | 可能原因 | 处理 |
|---|---|---|
| login 报错或验证不通过 | cookies 在百度首页而非网盘页面获取;STOKEN 拿成了 bdstoken | 到 pan.baidu.com 重新复制 cookies,确认 STOKEN 含大写字母 |
| 登录时弹出手机/邮箱验证 | 账号长期未用该方式登录 | 改用 cookies 登录,绕开交互验证 |
| 下载速度骤降到接近 0 | 普通用户并发设置大于 1,触发限速 | max_parallel 和 max_download_load 都改回 1,等待限速解除 |
| 下载报 check MD5 不通过,但文件其实正常 | 官方网盘端 MD5 与本地计算不一致的已知问题 | 加--nocheck参数,或在配置里启用 no_check |
| 上传卡住、0B/s 或报网络错误 | 当前 PCS 服务器不通 | 用config set -pcs_addr换成 c.pcs.baidu.com 等已知可用地址再试 |
| 同名文件上传后网盘没变化 | 默认策略是跳过同名文件 | 把 upload_policy 配置为 overwrite 或 rsync |
| 海外服务器上上传失败 | pan.baidu.com 在境外访问受限 | 在配置里为 pan.baidu.com 设置 proxy_hostnames 回国代理 |
深入探索:核心源码目录与文档入口
命令行为由几个目录分工实现:baidupcs/ 封装百度网盘的接口调用,上传、下载、分享、转存的请求逻辑都在这里;internal/pcscommand/是各子命令的实现层,requester/负责 HTTP 客户端与并发上传下载,pcsutil/放校验、单位转换等通用工具。想读代码,可以从 README 的命令列表对照着找入口。
接口层面可以参考 docs/overview.md 了解 PCS 文件 API 的请求方式与错误码结构;遇到 bug 或有想法可以提交 Issue 反馈,也可以直接改代码参与贡献。
适合需要网盘命令行管理、或想把上传下载写进定时脚本的场景。下一步建议:把"转存 + 下载"串成一个 shell 脚本,定时拉取别人网盘的更新。
【免费下载链接】BaiduPCS-Goiikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考