尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

BaiduPCS-Go 入门指南:3 步登录 + 5 个高频命令,把百度网盘装进终端

BaiduPCS-Go 入门指南:3 步登录 + 5 个高频命令,把百度网盘装进终端 BaiduPCS-Go 入门指南3 步登录 5 个高频命令把百度网盘装进终端【免费下载链接】BaiduPCS-Goiikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go先花 30 秒说清楚它是什么BaiduPCS-Go 是一款用 Go 语言编写的百度网盘命令行客户端把列目录、上传下载、转存分享、离线下载全部搬进了终端。它的核心价值有三条——批量操作效率远高于网页版、支持带提取码的分享链接直接转存、还能在完全没有图形界面的服务器上完成网盘管理。下面用一条完整的上手路径带你把它真正用起来。先说一段真实经历我在网页版上浪费了半小时前阵子朋友丢给我一串百度网盘分享链接说是某个课程的录屏一共 20 多个每个还带提取码。我按老办法操作打开网页、复制链接、输入提取码、等待页面加载、确认转存、关掉再来下一个。循环到第 8 个的时候我已经开始怀疑人生。更难受的是下载。几十个 G 的视频网页版下载要么限速要么断掉之后从头再来浏览器还不能关。后来我换了个思路能不能像操作本地文件一样操作网盘cd、ls、cp、mv再加上一条转存命令把上面这套重复劳动写进循环里答案就是这篇文章的主角。BaiduPCS-Go 到底是什么一款仿 Linux shell的网盘工具BaiduPCS-Go 的历史可以追溯到 iikira 的开源版本本项目在 v3.6.2 的基础上继续开发最大的增量就是分享链接 / 秒传链接转存功能。它模拟了百度网盘网页端的转存接口把识别链接、带密码鉴权、转存到当前目录这一整套流程封装成一条命令。它和官方客户端、网页版的差别看这张表就清楚了对比维度网页版 / 官方客户端BaiduPCS-Go批量操作逐个点击易触发限制通配符匹配路径一条命令处理一批分享链接转存网页手工操作transfer命令自动转存支持带密码链接运行环境必须有浏览器Windows / macOS / Linux / 服务器均可自动化无脚本接口可接入 crontab、shell 脚本多账号切换麻烦su一键切换账号列表管理下载方式浏览器下载多线程并行、断点续传、目录整包下载一句话总结它把网盘变成了一个远程目录你对本地文件夹能做的事对它也基本能做。出发前准备获取程序与 10 分钟环境检查方式一拉源码自己编译git clone https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go cd BaiduPCS-Go go build项目是纯 Go 写的跨平台编译很容易。比如在 Linux 上编译 Windows 64 位程序GOOSwindows GOARCHamd64 CGO_ENABLED0 go build编译产物是一个单文件可执行程序拷到任何机器上都能直接跑不需要装运行时。方式二直接用预编译版本官方在蓝奏云提供了常用平台的预编译程序下载解压后即可运行。Windows 上建议在命令提示符或 PowerShell 里运行GitBash 可能会出现显示问题Linux / macOS 直接开终端。启动后你应该看到的界面不带任何参数运行程序会进入仿 Linux shell 的交互模式BaiduPCS-Go 登录账号之后提示符会变成BaiduPCS-Go:工作目录 用户名$。这个交互模式支持 Tab 自动补全命令和网盘路径、方向键翻历史命令体验和本地 shell 很像。如果你终端输出乱码先检查编码是不是 UTF-8。第 1 步3 种登录方式选对才不会踩坑登录是使用前的唯一前置条件。BaiduPCS-Go 提供三种方式优先级完全不同。方式一Cookies 登录推荐浏览器登录百度网盘首页按 F12 打开开发者工具 → Network 标签 → 刷新页面 → 找到第一条请求从请求头里复制完整的 Cookies 字段BaiduPCS-Go login -cookiesBAIDUIDxxx; BDUSSyyy; STOKENzzz; ...这是最稳定的方式也是使用转存功能的前提——想用transfer转存别人的分享Cookies 里必须带上 STOKEN。方式二BDUSS STOKEN 组合从 Cookie 里单独抽出 BDUSS 和 STOKEN 两个字段BaiduPCS-Go login -bdussBDUSS -stokenSTOKEN注意 STOKEN 必须在百度网盘页面获取才有效而且它和bdstoken不是一回事——如果你拿到的字符串里没有大写字母多半是拿错了字段。方式三交互式登录不推荐BaiduPCS-Go login按提示输入用户名和密码即可。但项目说明里写得很直白这种方式已长期不维护且存在验证码要重复输入的已知问题能用前两种就别用这种。多账号管理顺带一起说了loglist列出所有已登录账号su切换账号who查看当前账号logout退出登录。家里一个号、工作一个号的场景一条su就切过去了。第 2 步5 个高频命令覆盖 90% 的日常操作1.cd/pwd像操作本地目录一样切目录BaiduPCS-Go cd /我的资源 # 绝对路径 BaiduPCS-Go cd .. # 上级目录 BaiduPCS-Go cd /我的* # 通配符匹配 BaiduPCS-Go cd -l 我的资源 # 切换并自动列出内容 BaiduPCS-Go pwd # 查看当前工作目录为什么要先 cd因为下载、上传、转存命令都默认以当前工作目录为基准。切到目标目录后再操作命令能短一大截。2.ls列目录 排序BaiduPCS-Go ls # 列出当前目录 BaiduPCS-Go ls -size -desc /我的资源 # 按大小降序 BaiduPCS-Go ls -time /视频 # 按时间排序想看整个目录树长什么样用tree还能用--depth限制层数。3.d下载支持目录整包和断点续传BaiduPCS-Go d /我的资源/1.mp4 # 下载单个文件 BaiduPCS-Go d /我的资源 # 下载整个目录 BaiduPCS-Go d /视频/*.mp4 # 通配符批量下载 BaiduPCS-Go d -p 8 /我的资源/1.mp4 # 指定线程数并行下载下载的文件默认存到程序目录下的download/重名文件自动跳过不会覆盖。想改保存位置用config set -savedir指定。4.u上传单文件最大支持 128GBaiduPCS-Go u C:/Users/me/1.mp4 /视频 BaiduPCS-Go u /本地/项目 /网盘/备份 --policy rsync # 同名文件策略 BaiduPCS-Go u /本地/项目 /网盘/备份 --norapid # 跳过秒传检测上传默认分片上传并自动检测秒传同名文件默认跳过--policy可以切换为覆盖overwrite或只跳过大小未变的同名文件rsync。注意受官方接口变化影响v4.0.0 起上传不再支持断点续传下载不受影响。5.search全盘找文件BaiduPCS-Go search -r 关键词 # 递归搜索当前目录 BaiduPCS-Go search -path/ 关键词 # 指定从根目录搜只能搜文件、不能搜目录这是接口限制记住就行。顺手存一张速查表命令作用常用参数cd切换工作目录-l切换后自动列出ls列出目录-size-time-asc-descd/download下载-p线程数--saveto保存路径u/upload上传--policy--norapidsearch搜索文件-r递归-path指定目录mkdir/rm/cp/mv目录管理通配符均可第 3 步压轴功能——分享链接转存怎么用这是本项目区别于原版的核心功能也是我开篇那个故事的解药。转存语法只有一条BaiduPCS-Go transfer https://pan.baidu.com/s/12L_ZZVNxz5f_2CccoyyVrW edv4如果分享链接自带密码参数直接连链接带参数一起给BaiduPCS-Go transfer https://pan.baidu.com/s/12L_ZZVNxz5f_2CccoyyVrW?pwdedv4两点提醒转存目标固定是当前工作目录想存到哪先cd过去。转存完想立刻下载加--download参数一条命令完成转存 下载两件事。技术实现上它位于 baidupcs/transfer.go流程是解析分享链接 → 提取 shareid/uk/提取码 → 携带当前账号的 STOKEN 调用转存接口。也就是说登录时有没有带上 STOKEN直接决定这条命令能不能用。让速度更稳并发数、保存目录等关键配置项先看当前配置再按需修改BaiduPCS-Go config # 查看全部配置 BaiduPCS-Go config set -h # 查看可设置项最常见的几个调优项配置项普通用户建议SVIP 建议说明max_parallel110~20单文件并行线程数max_download_load11~2同时下载的文件数savedir按需按需下载保存目录pcs_addr默认即可默认即可API 服务器地址BaiduPCS-Go config set -max_parallel 1 -max_download_load 1 # 普通用户防限速 BaiduPCS-Go config set -savedir D:/Downloads # 改保存目录 BaiduPCS-Go config reset # 恢复默认这里有个反直觉的坑必须讲清楚把并发调大并不等于提速。普通用户把max_parallel调到 1 以上短时间内确实能冲一下速度但很容易触发百度限速机制之后几小时甚至几天内你的账号在所有客户端上都会接近 0 速。普通用户想提速这个软件给不了——它明确不提供超出官方客户端的提速能力。SVIP 用户可以把max_parallel开到 10~20、max_download_load设为 1~2实测可以稳定跑满带宽但不建议超过 20。如果遇到上传异常还可以试试切换 API 服务器config set -pcs_addr c.pcs.baidu.com。已知可用地址有pcs.baidu.com、c.pcs.baidu.com、c2~c5.pcs.baidu.com、d.pcs.baidu.com另外 v3.9.8 之后上传支持动态获取服务器多数情况下不用手动改。人在国外 VPS 上的可以给pan.baidu.com配置proxy_hostnames回国代理。三个可以直接抄的自动化脚本命令行工具最大的价值在于可编程。下面三个脚本改改路径就能用。脚本一每日定时备份工作目录#!/bin/bash # 每日备份可放进 crontab 每天凌晨执行 BACKUP_DIR/home/user/Documents REMOTE_PATH/备份/工作文档 export BAIDUPCS_GO_CONFIG_DIR/home/user/.config/BaiduPCS-Go BaiduPCS-Go upload $BACKUP_DIR $REMOTE_PATH/$(date %Y%m%d) --policy rsync echo 备份完成: $(date)配合 crontab 一行搞定0 2 * * * /home/user/backup.sh /home/user/backup.log 21--policy rsync的作用是只覆盖大小变化的同名文件这样重复执行不会把没改过的文件重传一遍省流量也省时间。脚本二批量转存资源清单#!/bin/bash # links.txt 每行格式链接|提取码 while IFS| read -r link password; do BaiduPCS-Go transfer $link $password echo 已处理: $link sleep 2 # 给接口留出间隔避免触发风控 done links.txt这正是开篇那个故事的解决方案20 个分享链接丢进清单文件脚本自己跑完。脚本三服务器日志定期归档#!/bin/bash BaiduPCS-Go upload /var/log/nginx/access.log /备份/服务器日志/$(hostname)/ BaiduPCS-Go offlinedl add -path/下载任务 magnet:?xturn:btih:xxxxxxxxofflinedl是离线下载命令支持 http/https/ftp/电驴/磁力链把资源地址丢给百度服务器下载适合下载任务放在夜间自动执行。避坑清单5 个高频问题的排查思路现象最常见原因排查 / 解决登录失败Cookies 过期或字段不全重新抓取确认包含 BDUSS、STOKEN 等必要字段转存报缺少 STOKEN登录时没带 STOKEN用login -cookies重新登录STOKEN 必须在网盘页面获取下载速度突然归零并发调太高触发限速普通用户把max_parallel、max_download_load都调回 1等待解封上传失败文件名含特殊字符 / 服务器异常改文件名切换pcs_addr加--norapid跳过秒传校验报错MD5 校验误报用--nocheck或配置里开启no_checkv3.7 起默认开启另外两个已知问题也提前打个预防针分片上传后网盘端算出的 MD5 可能和本地不一致这是网盘端的 bug下载回来比对又是对的交互式登录的验证码可能要输两遍才生效。知道有这么回事遇到时就不会慌。想改源码先读这 5 个目录官方文档在 docs/README.md但想深入源码的话建议按这个顺序看main.go —— 所有命令的注册入口想加一条自定义命令先看这里baidupcs/ —— 核心 API 封装转存在 transfer.go文件操作在 file_directory.gorequester/downloader/ —— 多线程下载引擎断点续传和并发控制的实现requester/uploader/ —— 分片上传与秒传检测逻辑internal/pcscommand/ —— 命令到 API 的桥接层读代码时最常翻的目录想扩展功能的话套路是在main.go里注册一条cli.Command在internal/pcscommand/里写业务逻辑在baidupcs/里封装接口调用三层结构非常清晰。写在最后回到开篇那个问题值不值得把网盘操作从浏览器搬进终端我的答案是分场景的——偶尔用一次网页版无可厚非但如果你符合下面任意一条就值得花这 10 分钟经常批量下载或上传被网页版的重复点击折磨手上有多账号要来回切换有服务器想绕过图形界面直接管理网盘想要定时备份、批量转存这类一劳永逸的自动化流程BaiduPCS-Go 的学习曲线并不陡cd、ls、d、u四条命令的直觉你早就有了剩下的transfer和config不过是锦上添花。先把这 5 条命令跑熟再把配置文件看一眼你的网盘管理效率大概率会有一次肉眼可见的提升。【免费下载链接】BaiduPCS-Goiikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表