BaiduPCS-Go——下载百度网盘文件的工具

在深度学习、计算机视觉等科研工作中,很多数据集、模型权重以及项目资源都会通过百度网盘进行分享。然而,对于 Linux 服务器来说,由于没有官方客户端,很多人只能通过浏览器下载,不仅操作繁琐,而且容易出现下载中断、无法后台运行等问题。

针对这些痛点,BaiduPCS-Go 提供了一种更加高效的解决方案。本文将从工具介绍、安装配置到实际下载操作,详细介绍 BaiduPCS-Go 的使用方法,帮助大家快速掌握这一命令行工具。


一、什么是 BaiduPCS-Go?

BaiduPCS-Go 是一款基于 Go 语言开发的第三方百度网盘命令行客户端,它通过百度网盘开放接口(PCS)提供文件管理功能,可以直接在终端中完成登录、浏览网盘、下载、上传等操作。

与官方客户端相比,它最大的特点就是支持 Linux,非常适合部署在远程服务器、GPU 工作站以及云服务器上使用。

BaiduPCS-Go 具有以下优势:

  • 支持 Linux、Windows、macOS 等多个平台;
  • 支持 SSH 远程服务器,无需图形界面;
  • 支持浏览、上传、下载百度网盘文件;
  • 支持下载整个目录;
  • 支持多线程下载;
  • 支持指定下载目录;
  • 支持命令行自动化,便于脚本调用;
  • 支持后台运行,非常适合下载大型数据集。

需要注意: BaiduPCS-Go 是一个命令行客户端,它能够提供更加方便的下载方式,但并不能突破百度网盘官方的下载限速策略,下载速度仍然受到账号类型及官方策略的限制。


二、安装 BaiduPCS-Go

2.1 下载程序

目前推荐使用 BaiduPCS-Go v4.x 加强版

根据自己的操作系统下载对应版本,例如:

  • Windows
  • Linux x86_64
  • macOS

下载完成后,将压缩包解压即可。

例如 Linux:

bash 复制代码
unzip BaiduPCS-Go-linux-amd64.zip

随后赋予程序执行权限:

bash 复制代码
chmod +x BaiduPCS-Go

验证是否安装成功:

bash 复制代码
./BaiduPCS-Go --version

如果输出类似:

text 复制代码
BaiduPCS-Go v4.0.1

则说明安装成功。


2.2 配置环境变量(推荐)

如果每次都输入程序完整路径,会比较麻烦。

可以将 BaiduPCS-Go 所在目录加入环境变量,例如:

bash 复制代码
export PATH=/path/to/BaiduPCS-Go:$PATH

为了永久生效,可写入:

bash 复制代码
~/.bashrc

或者:

bash 复制代码
~/.zshrc

然后执行:

bash 复制代码
source ~/.bashrc

之后即可直接输入:

bash 复制代码
BaiduPCS-Go

无需再输入完整路径。


三、登录百度网盘

首次使用需要登录百度网盘账号。

执行:

bash 复制代码
BaiduPCS-Go login

根据提示完成登录即可。

登录成功后,可以查看当前登录账号:

bash 复制代码
BaiduPCS-Go who

如果能够显示账号信息,则说明登录成功。


四、浏览百度网盘文件

登录成功后,可以浏览自己的网盘。

查看根目录:

bash 复制代码
BaiduPCS-Go ls /

查看某个目录:

bash 复制代码
BaiduPCS-Go ls "/我的资源"

如果不知道文件放在哪里,可以逐级查看目录,例如:

bash 复制代码
BaiduPCS-Go ls "/datasets"

再继续:

bash 复制代码
BaiduPCS-Go ls "/datasets/HM3D"

这样即可找到需要下载文件的完整网盘路径。


五、设置默认下载目录

如果经常下载文件,建议先设置默认下载目录。

例如:

bash 复制代码
BaiduPCS-Go config set -savedir "/your/download/path"

以后下载文件时,如果没有指定保存路径,就会自动下载到该目录。

查看当前配置:

bash 复制代码
BaiduPCS-Go config

六、下载百度网盘文件

下载单个文件

最简单的下载方式:

bash 复制代码
BaiduPCS-Go d "/网盘路径/文件.tar"

例如:

bash 复制代码
BaiduPCS-Go d "/datasets/HM3D/hm3d-minival-glb-v0.2.tar"

下载到指定目录

如果希望保存到指定位置,可以使用:

bash 复制代码
BaiduPCS-Go d \
    --saveto "/your/download/path" \
    "/datasets/HM3D/hm3d-minival-glb-v0.2.tar"

下载完成后,文件将保存在指定目录。


下载整个目录

不仅可以下载单个文件,还可以下载整个目录。

例如:

bash 复制代码
BaiduPCS-Go d \
    --saveto "/your/download/path" \
    "/datasets/HM3D"

程序会自动递归下载整个目录中的所有文件。


七、下载别人分享的百度网盘资源

很多开源项目提供的是百度网盘分享链接,而不是网盘中的文件路径。

推荐的下载流程如下:

第一步:登录自己的百度网盘账号

bash 复制代码
BaiduPCS-Go login

第二步:将分享链接中的资源保存到自己的百度网盘。

第三步:查看资源保存后的路径

bash 复制代码
BaiduPCS-Go ls /

第四步:下载保存后的文件

bash 复制代码
BaiduPCS-Go d "/保存后的网盘路径/文件名"

这种方式比浏览器下载更加稳定,也更适合 Linux 服务器。


八、常用下载参数

实际下载过程中,下面几个参数非常常用。

1. 指定保存目录

bash 复制代码
--saveto "/your/download/path"

例如:

bash 复制代码
BaiduPCS-Go d \
    --saveto "/your/download/path" \
    "/datasets/file.tar"

2. 覆盖已有文件

如果本地已经存在同名文件,可以直接覆盖:

bash 复制代码
--ow

例如:

bash 复制代码
BaiduPCS-Go d --ow "/datasets/file.tar"

3. 多线程下载

提高下载效率:

bash 复制代码
-p 16

例如:

bash 复制代码
BaiduPCS-Go d -p 16 "/datasets/file.tar"

线程数可以根据网络环境自行调整,例如:

  • -p 4
  • -p 8
  • -p 16

4. 指定下载模式

默认情况下使用 locate 下载模式。

如果下载时报错:

text 复制代码
user is not authorized

可以切换为 PCS 模式:

bash 复制代码
--mode pcs

例如:

bash 复制代码
BaiduPCS-Go d \
    --mode pcs \
    "/datasets/file.tar"

5. 综合示例

实际项目中,经常会组合多个参数:

bash 复制代码
BaiduPCS-Go d \
    --ow \
    -p 16 \
    --mode pcs \
    --saveto "/your/download/path" \
    "/datasets/HM3D/hm3d-minival-glb-v0.2.tar"

该命令表示:

  • 使用 16 个线程下载;
  • 覆盖已有文件;
  • 使用 PCS 下载模式;
  • 保存到指定目录。

九、常用命令汇总

功能 命令
登录百度网盘 BaiduPCS-Go login
查看当前账号 BaiduPCS-Go who
查看配置 BaiduPCS-Go config
设置默认下载目录 BaiduPCS-Go config set -savedir
浏览网盘目录 BaiduPCS-Go ls
下载文件 BaiduPCS-Go d
上传文件 BaiduPCS-Go upload
查看帮助 BaiduPCS-Go help
查看版本 BaiduPCS-Go --version

十、常见问题

1. 提示 user is not authorized

尝试切换下载模式:

bash 复制代码
BaiduPCS-Go d --mode pcs "/datasets/file.tar"

2. 文件已存在

使用:

bash 复制代码
--ow

即可覆盖已有文件。


3. 下载速度较慢

BaiduPCS-Go 本身不会突破百度网盘官方限速。

建议:

  • 提高线程数;
  • 使用稳定网络;
  • 尽量使用会员账号下载大型文件。

4. Linux 服务器后台下载

推荐结合 screentmux

bash 复制代码
screen -S download

随后执行下载命令。

即使 SSH 连接断开,下载任务仍会继续运行。


总结

对于经常在 Linux 服务器上下载百度网盘资源的用户来说,BaiduPCS-Go 是一款非常实用的命令行工具。它支持登录百度网盘、浏览文件、下载单个文件或整个目录,并提供多线程下载、指定保存目录等丰富功能,能够很好地满足科研开发和服务器运维场景的需求。

虽然 BaiduPCS-Go 无法突破百度网盘官方的下载限速策略,但相比浏览器下载,它在自动化、稳定性以及服务器适配方面具有明显优势。如果你经常需要下载大型数据集、模型权重或项目资源,建议将其作为 Linux 环境中的常用工具之一。

相关推荐
kebeiovo7 小时前
游戏服务端开发:Actor模型详解(Go语言)
开发语言·后端·golang
Wang's Blog10 小时前
Go-Zero项目开发9: 微服务治理之服务注册中心
微服务·golang
布朗克16811 小时前
Go 入门到精通-27-泛型编程
开发语言·golang·xcode·泛型编程
名字还没想好☜11 小时前
Go 用 errgroup 管理并发子任务:错误收敛、取消传播与限流
开发语言·后端·golang·go·并发
web守墓人15 小时前
【go语言】gotar:使用go语言复刻tar命令,并加入7z支持,可独立运行在windows、linux、macos上
linux·macos·golang
看-是灰机15 小时前
使用go语言实现对接
linux·开发语言·后端·docker·语言模型·golang·飞书
Wang's Blog17 小时前
Go-Zero项目开发8: 构建社交API服务与微服务解耦实践
开发语言·微服务·golang
怒放de生命20101 天前
【web3基础】Go-Zero+mysql进行crud操作(三)
mysql·golang·web3·go-zero
名字还没想好☜1 天前
Go 的 time.Ticker 陷阱:定时任务里被忽略的内存泄漏与正确关闭
java·数据库·golang·go·定时器