BaiduPCS-Go 完整指南:百度网盘命令行工具,一条命令转存分享链接,5 步跑通
【免费下载链接】BaiduPCS-Goiikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go
BaiduPCS-Go 是一个用 Go 编写的百度网盘命令行客户端,仿 Linux shell 的命令风格完成登录、上传、下载、目录管理,并集成了分享链接转存功能。如果你需要在服务器、脚本或 CI 里批量操作百度网盘,而又不想依赖手机 App,这个工具就是为此设计的。
场景切入
先看一个真实场景:你有一台无图形界面的 Linux 服务器,每天凌晨要把/data/projects目录备份到百度网盘;某天群里有人丢来一个带提取码的分享链接,需要马上存进网盘。用官方客户端你连不上图形界面,存分享链接得掏手机点开 App,脚本里更没法自动完成。BaiduPCS-Go 把网盘变成"另一个文件系统":cd、ls、d(下载)、u(上传)这些命令和 shell 用法几乎一致,备份脚本里直接调用即可,转存分享链接也是一条命令的事。
快速上手
从获取代码到跑通第一条命令,只需 4 步。第 1 步克隆仓库并交叉编译,Go 环境下直接构建:
git clone https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go cd BaiduPCS-Go go build -o BaiduPCS-Go main.go第 2 步登录。官方推荐 Cookies 方式(在浏览器登录百度网盘后从首页 Cookie 中复制),这是目前维护最稳定的登录路径:
BaiduPCS-Go login -cookies="你的Cookies字符串"第 3 步确认登录成功并查看配额,quota能同时验证会话有效:
BaiduPCS-Go who BaiduPCS-Go quota第 4 步列目录、下一个文件,感受仿 shell 的交互方式:
BaiduPCS-Go ls / BaiduPCS-Go d /我的资源/1.mp4不带参数直接运行程序会进入交互模式,前缀变为BaiduPCS-Go:<工作目录> <百度ID>$,支持 Tab 自动补全命令和路径。
核心功能拆解
分享链接转存:本项目相对原版最大的增强
一句话价值:把别人的分享链接变成你自己网盘里的文件,全程命令行,支持带密码链接。用法如下(注意:转存固定保存到当前工作目录,所以先cd):
BaiduPCS-Go cd /他人资料 # 提取码作为第二个参数 BaiduPCS-Go transfer https://pan.baidu.com/s/1AbCdEfGh edv4 # 链接自带 ?pwd= 时直接整段粘贴也可以 BaiduPCS-Go transfer "https://pan.baidu.com/s/1AbCdEfGh?pwd=edv4"v4.0.2 起还支持--fs_id参数只转存链接里的指定文件,避免整个目录被拉进来。转存逻辑的源码入口在 baidupcs/ 下的transfer.go,链接解析、密码校验、stoken 刷新的完整流程都能在里面看到。
批量下载:目录、多文件一次下完
下载默认保存到程序所在目录的download/,支持整目录递归、断点续传,重名文件自动跳过:
# 下载整个目录 BaiduPCS-Go d /学习资料 # 多个文件一次指定 BaiduPCS-Go d /资料/1.pdf /资料/2.pdf --saveto /data/pdf--saveto可临时指定保存目录,-p指定单文件下载线程数,--test是测试模式不真正落盘。
批量上传:带同步策略的 rsync 体验
上传默认走分片方式,支持到 128G 的单文件;同名文件的处理策略是它的亮点:
# --policy rsync:只跳过大小未变化的文件,其余覆盖,适合反复备份 BaiduPCS-Go u /data/projects /备份/202609 --policy rsync # 秒传检测默认开启,--norapid 可跳过 BaiduPCS-Go u /data/big.iso /备份 --norapid策略取值有skip(默认,跳过)、overwrite(覆盖)、rsync三种,也可用config set -upload_policy设成全局默认。
目录管理:cd / ls / mv / rm / search 一套通吃
网盘路径支持通配符,目录操作和 shell 一致,这里挑最常用的几条:
BaiduPCS-Go cd /我的* # 通配符匹配路径 BaiduPCS-Go tree /我的资源 # 树形图查看结构 BaiduPCS-Go search -r 报表 # 递归搜索文件名 BaiduPCS-Go mv /旧名称 /新名称 # 重命名离线下载:附带的磁力和链接抓取能力
支持 http/https/ftp/电驴/磁力链协议,适合让网盘服务器替你拉取资源:
BaiduPCS-Go offlinedl add -path=/下载 "magnet:?xt=urn:btih:xxx" BaiduPCS-Go offlinedl list配置调优速查
所有参数通过BaiduPCS-Go config查看、config set修改。下面是从 README 与配置源码中提取的推荐组合,直接对照你的场景抄即可:
| 使用场景 | 推荐命令 | 选择原因 |
|---|---|---|
| 普通用户下载 | config set -max_parallel 1 -max_download_load 1 | 官方明确警告:并发大于 1 极易触发限速,导致账号各客户端几小时甚至几天接近 0 速 |
| SVIP 用户下载 | config set -max_parallel 10 -max_download_load 2 | README 建议 SVIP 设 10~20、load 1~2,实测可稳定满速 |
| 固定保存目录 | config set -savedir /data/netdisk | 默认存到程序目录的 download/,服务器上不如固定路径好找 |
| 限速下载/上传 | config set -max_download_rate 2MB/s | 速率支持带单位写法,0 代表不限制 |
| 上传遇异常 | config set -pcs_addr c.pcs.baidu.com | 可换 c/c2~c5/d 等多个已知 PCS 地址;v3.9.8 后默认动态获取,一般不用动 |
参数合法范围(来自 internal/pcsconfig/ 配置表):max_parallel1~20、max_download_load1~5、cache_size1KB~256KB、max_upload_load1~4。改乱了随时config reset恢复默认。
真实工作流:cron 每日自动备份
下面是一个可直接部署的生产示例:每天凌晨 3 点把项目目录按日期备份到网盘。关键点是用 rsync 策略保证脚本幂等,重跑不产生重复文件:
#!/bin/bash # /usr/local/bin/baidu_backup.sh 每日项目备份脚本 TODAY=$(date +%Y%m%d) LOG=/var/log/baidu_backup.log # 目标日期目录不存在才创建,避免重复 mkdir 报错 BaiduPCS-Go ls "/备份/$TODAY" >/dev/null 2>&1 || BaiduPCS-Go mkdir "/备份/$TODAY" # rsync 策略:大小未变化的文件跳过,只传增量 BaiduPCS-Go upload /data/projects "/备份/$TODAY" --policy rsync # 记录日志,方便排查哪天没跑 echo "$(date): backup $TODAY done" >> "$LOG"挂上 crontab 即可生效:
0 3 * * * /usr/local/bin/baidu_backup.sh避坑指南
现象:下载完找不到文件。原因:默认保存目录是程序所在目录下的download/,不是当前工作目录。解决:BaiduPCS-Go config set -savedir /data/netdisk,或单条命令加--saveto。
现象:下载速度突然接近 0,其他客户端一起卡。原因:普通账号的max_parallel调大了,触发官方限速。解决:BaiduPCS-Go config set -max_parallel 1 -max_download_load 1。
现象:transfer成功提示了,但文件不在目标目录。原因:转存命令不支持指定目标路径,固定存入当前工作目录。解决:先BaiduPCS-Go cd /目标目录,再执行transfer。
现象:终端输出中文乱码。原因:终端编码不是 UTF-8(README 明确要求)。解决:把终端编码切到 UTF-8 后重跑即可。
结尾
BaiduPCS-Go 的定位很清晰:把百度网盘变成 shell 能直接操作的第二个文件系统,并补上了命令行转存分享链接这一课。想继续深入,可以从 README 的"命令列表及说明"逐条过一遍,API 层参考 docs/ 下的网盘接口文档,命令实现则看 internal/pcscommand/ 目录,每个文件对应一条命令,读起来很直接。
【免费下载链接】BaiduPCS-Goiikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考