news 2026/9/28 2:36:03

BaiduPCS-Go 实战:3条命令跑通,把百度网盘塞进你的自动化流水线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
BaiduPCS-Go 实战:3条命令跑通,把百度网盘塞进你的自动化流水线

BaiduPCS-Go 实战:3条命令跑通,把百度网盘塞进你的自动化流水线

【免费下载链接】BaiduPCS-Goiikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go

BaiduPCS-Go 是一个用 Go 写的百度网盘命令行客户端,这个增强版把分享链接转存功能集成进了本体——一条命令就能把别人分享的文件收进自己的网盘。它用类 Linux shell 的命令替换了图形客户端,让脚本和定时任务可以直接驱动网盘。如果你常年在服务器上干活,或者想把网盘文件批量处理进流水线,这个工具值得一试。

三分钟上手:从 clone 到第一条下载

不用找安装包,clone 下来自己编译,产出单个可执行文件、零依赖:

git clone https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go cd BaiduPCS-Go go build -o BaiduPCS-Go ./BaiduPCS-Go login -cookies="BDUSS=xxxxxx; BAIDUID=yyyyyy; STOKEN=zzzzz" ./BaiduPCS-Go config set -savedir /home/dev/netdisk ./BaiduPCS-Go ls /

登录方式里 cookies 最省心:浏览器打开网盘首页,F12 切到 Network 标签,刷新后从第一条请求的 Cookie 字段整段复制。注意 STOKEN 必须在网盘页面取,且里面含大写字母——拿到一串小写字母多半是抄错了字段,后面转存会直接报错。

config set -savedir把下载落盘目录固定到/home/dev/netdisk,之后d /我的资源/1.mp4直接下载,重名文件自动跳过,中断后重跑会接着之前的进度。不带参数直接运行程序则进入交互模式,Tab 能补全命令和网盘路径,体验接近 ssh 进了一台"网盘服务器"。

核心能力:你能拿它干什么

下载与上传:断点、并发、rsync 增量

下载有三种模式,默认locate走 Android 客户端同款取链逻辑;提示user is not authorized时换--mode pcs即可。-p控制单文件线程数,-l控制同时下载的文件数。上传默认分片,单文件最大 128G,且默认先试秒传;-policy提供三个同名文件策略——skip、overwrite、rsync,最后一个"只跳过大小没变过的文件",做增量同步时基本就是为它设计的。

分享转存:这个项目的立身之本

./BaiduPCS-Go transfer https://pan.baidu.com/s/1abc123 edv4

文件会落到当前工作目录,所以转存前先cd /收藏。三个参数值得记住:--collect把分享里的多个文件整合进一个文件夹再转存;--rname随机替换文件名中 4 个字符,提高秒传成功率;--fs_id指定特定文件转存,用于绕开单次转存的文件数量上限。v4.0.2 起还认?pwd=提取码的整合式链接和分享口令格式,复制一条带密码的链接整体丢进去也能跑。

批量操作:通配符、离线下载与分享下发

目录操作是标准 shell 那套:cd(支持通配符)、ls、tree、search -r、cp、mv、rm、mkdir,删掉的东西可用recycle列表和还原。offlinedl add支持 http/ftp/电驴/磁力链,先把内容落到网盘再下载;share set能自定义提取码和有效天数下发分享。

下载任务该开几个线程?

requester/downloader/里的下载引擎不是"配 N 线程就用 N 线程",每个任务开工前都会动态算线程数和分片大小。核心在SelectParallel和SelectBlockSizeAndInitRangeGen两个函数:

// requester/downloader/downloader.go(节选) func (der *Downloader) SelectParallel(single bool, maxParallel int, totalSize int64, instanceRangeList transfer.RangeList) int { if single { return 1 } if instanceRangeList != nil && len(instanceRangeList) > 0 { return len(instanceRangeList) // 断点续传:沿用已有分片 } parallel := der.config.MaxParallel if int64(parallel) > totalSize/MinParallelSize { // 每线程至少分 256KB parallel = int(totalSize/MinParallelSize) + 1 } if parallel < 1 { parallel = 1 } return parallel }

三个设计点值得咂摸。第一,256KB 下限(MinParallelSize):你配了 12 线程,1MB 的文件也只分到 5 个——避免一堆线程各拉一小段,握手开销比传输还大。第二,续传时不重新分片,直接沿用上次落盘的 Range 列表;要是重新切,新分片会和已写进度错位,断点就白记了。第三,分片大小按文件总量在 256KB/512KB/1MB/4MB 里分档取(BlockSizeList),小文件用小片避免大段请求浪费带宽,大文件用大片压低请求频率。除此之外 Downloader 还挂了多个负载均衡候选地址,首条下载链接失效会自动切换,不需要你干预。

并发数本身是把双刃剑,项目 README 把话说得很直白:

用户类型max_parallelmax_download_load说明
普通用户11调高极易触发限速,且影响各客户端数小时
SVIP10–201–2实验可稳定满速,不建议再往上堆
海外 VPS11上传不稳时为 pan.baidu.com 配 proxy_hostnames

两段可直接粘的脚本:每日备份与批量转存

场景一:每天凌晨把本地项目目录同步进网盘。--policy rsync只传大小变化的文件,已备份过的不会再跑一遍:

#!/bin/bash # /home/dev/backup_netdisk.sh,crontab: 0 3 * * * BPG=/usr/local/bin/BaiduPCS-Go "$BPG" upload /home/dev/projects "/项目备份/dev" --policy rsync \ && echo "$(date): 备份成功" >> /var/log/bpg.log \ || echo "$(date): 备份失败" >> /var/log/bpg.log "$BPG" quota

顺带查一次配额,防止某天磁盘默默写满。

场景二:批量转存分享链接。把链接整理成文本(每行一个,提取码可省),脚本逐个处理:

#!/bin/bash # /home/dev/transfer_all.sh BPG=/usr/local/bin/BaiduPCS-Go "$BPG" cd /收藏 while read -r url code _; do [ -z "$url" ] && continue "$BPG" transfer "$url" "${code:-}" --collect --download done < /home/dev/shares.txt

--collect让每个分享各自归档成一个文件夹,--download转存完直接落到本地默认目录。转存+下载一步到位,是这个版本用得最多的组合。

高频坑速查:30秒定位

  • 登录失效、命令报错:先who确认账号,再用新 cookies 重新login;cookies 要取自网盘首页,登录页取到的不一定带 STOKEN。
  • 转存提示 STOKEN 缺失:不是程序问题,是登录信息里没带 STOKEN。回网盘页面重新取一段含大写字母的 STOKEN,用login -bduss=... -stoken=...重登。
  • 下载速度骤降:基本是限速。config set -max_parallel 1 -max_download_load 1压回单线程,等几个小时恢复,期间别用高并发"试探"。
  • 上传后 md5 和本地对不上:分片上传的已知现象,文件内容完好,用fixmd5尝试修复;要求 md5 必须正确就禁用分片上传(退化为单线程)。
  • 下载校验 MD5 误报失败:文件多半没坏,下载时加--nocheck或在配置里关闭校验。

再进一步

baidupcs包可以直接当 Go 库引进你自己的项目,internal/pcscommand/里按一个文件一个子命令的套路加新命令也很顺;遇到协议层面的问题,baidupcs/transfer.go里 bdstoken 怎么取、fs_id 列表怎么拼,读一遍源码就能心里有数。踩到 bug 的话,项目仓库的 Issues 是最直接的反馈入口。

【免费下载链接】BaiduPCS-Goiikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 2:35:39

网络建设与管理好找工作吗这份避坑指南能救你

网络建设与管理好找工作吗这份避坑指南能救你 还在纠结网络建设与管理好找工作吗?别被那些“高薪入门”的假广告骗了。现实很残酷:只会背书不会动手的,简历投出去石沉大海。 我见过太多学员,花了上万块学费,出来还是连个静态页面都调不好。你以为自己学的是“网络”,其实老板要的是能立刻上手干活的人。…

作者头像 李华
网站建设 2026/9/28 2:35:32

网站建设新技术哪家强?3招解决改需求慢的痛点

网站建设新技术哪家强?3招解决改需求慢的痛点 改个按钮颜色,建站公司拖一周还没动静;加个简单的登录页,报价单翻了三倍还带含糊其辞。这种“改需求如登天”的憋屈,90%的企业老板和运营都经历过。很多人以为这是沟通问题,其实是技术栈太老旧。现在的 网站建设新技术…

作者头像 李华
网站建设 2026/9/28 2:35:28

备案卡壳别慌,3个免费工具搞定网站建设维护单选题

备案卡壳别慌,3个免费工具搞定网站建设维护单选题 刚接手公司网站维护,一查后台发现域名备案信息不全,心里顿时慌了。备案流程一头雾水,到底该先改域名还是先补材料?别急,这其实是很多后端初学者的第一个坑。我整理了几个 免费工具 ,专门用来梳理网站建设维护中的常见单选题逻辑,帮你理清思路。 一、…

作者头像 李华
网站建设 2026/9/28 2:34:14

5款wordpress分类模版设置插件对比评测,新手必看安全避坑指南

5款wordpress分类模版设置插件对比评测,新手必看安全避坑指南 刚接手一个 WordPress 项目,老板指着后台说:“这个分类页的排版太丑了,你改一下。”你点开后台,满屏的英文菜单,域名解析没配好,服务器 SSH 连不上,SSL…

作者头像 李华