装了Ubuntu之后,失去了我的pandownload,失去了极致的下载速度,我找了很多下载工具,aira2、Proxyee等等,我觉得还是这个工具最牛,在此安利给大家。

BaiduPCS-Go 百度网盘客户端

仿 Linux shell 文件处理命令的百度网盘命令行客户端.

This project was largely inspired by GangZhuo/BaiduPCS

特色

多平台支持, 支持 Windows, macOS, linux, 移动设备等.

百度帐号多用户支持;

通配符匹配网盘路径和 Tab 自动补齐命令和路径, 通配符_百度百科;

下载网盘内文件, 支持多个文件或目录下载, 支持断点续传和单文件并行下载;

上传2GB以内的文件, 支持多个文件或目录上传;

离线下载, 支持http/https/ftp/电驴/磁力链协议.

编译/交叉编译 说明

参见 编译/交叉编译帮助

下载/运行 说明

Go语言程序, 可直接在发布页下载使用.

如果程序运行时输出乱码, 请检查下终端的编码方式是否为 UTF-8.

使用本程序之前, 建议学习一些 linux 基础知识 和 基础命令.

如果未带任何参数运行程序, 程序将会进入仿Linux shell系统用户界面的cli交互模式, 可直接运行相关命令.

cli交互模式下, 光标所在行的前缀应为 BaiduPCS-Go >, 如果登录了百度帐号则格式为 BaiduPCS-Go: $

程序会提供相关命令的使用说明.

Windows

程序应在 命令提示符 (Command Prompt) 或 PowerShell 中运行, 在 mintty (例如: GitBash) 可能会有显示问题.

也可直接双击程序运行, 具体使用方法请参见 命令列表及说明初级使用教程.

Linux / macOS

程序应在 终端 (Terminal) 运行.

具体使用方法请参见 命令列表及说明初级使用教程.

Android / iOS

Android / iOS 移动设备操作比较麻烦, 不建议在移动设备上使用本程序.

安卓, 建议使用 TermuxNeoTerm 或 终端模拟器, 以提供终端环境.

示例: Android 运行本项目程序参考示例, 有兴趣的可以参考一下.

苹果iOS, 需要越狱, 在 Cydia 搜索下载并安装 MobileTerminal, 或者其他提供终端环境的软件.

示例: iOS 运行本项目程序参考示例, 有兴趣的可以参考一下.

具体使用方法请参见 命令列表及说明初级使用教程.

命令列表及说明

注意 ! ! !

命令的前缀 BaiduPCS-Go 为指向程序运行的全路径名 (ARGv 的第一个参数)

直接运行程序时, 未带任何其他参数, 则程序进入cli交互模式, 运行以下命令时, 要把命令的前缀 BaiduPCS-Go 去掉!

cli交互模式已支持按tab键自动补全命令和路径.

检测程序更新

登录百度帐号

常规登录百度帐号

支持在线验证绑定的手机号或邮箱,

使用百度 BDUSS 来登录百度帐号

关于 获取百度 BDUSS

例子

列出帐号列表

获取当前帐号, 和所有已登录的百度帐号

切换百度帐号

切换已登录的百度帐号

退出百度帐号

退出当前登录的百度帐号

程序会进一步确认退出帐号, 防止误操作.

获取网盘配额

获取网盘的总储存空间, 和已使用的储存空间

切换工作目录

切换工作目录后自动列出工作目录下的文件和目录

例子

输出工作目录

列出目录

列出当前工作目录的文件和目录或指定目录

可选参数

例子

列出目录树形图

列出当前工作目录的文件和目录或指定目录的树形图

获取单个文件/目录的元信息

获取单个文件/目录的元信息

例子

下载文件/目录

可选参数

支持多个文件或目录的下载.

下载的文件默认保存到 程序所在目录 的 download/ 目录, 支持设置指定目录, 重名的文件会自动跳过!

关于下载的简单说明

例子

上传文件/目录

  • 上传的文件将会保存到, .
  • 遇到同名文件将会自动覆盖!!
  • 当上传的文件名和网盘的目录名称相同时, 不会覆盖目录, 防止丢失数据.

例子:

手动秒传文件

注意: 使用此功能秒传文件, 前提是知道文件的大小, md5, 前256KB切片的 md5 (可选), crc32 (可选), 且百度网盘中存在一模一样的文件.

上传的文件将会保存到网盘的目标目录.

遇到同名文件将会自动覆盖!

例子:

获取本地文件的秒传信息

获取本地文件的大小, md5, 前256KB切片的 md5, crc32, 可用于秒传文件.

例子:

导出文件/目录

导出网盘内的文件或目录, 原理为秒传文件, 此操作会生成导出文件或目录的命令.

例子:

创建目录

例子

删除文件/目录

注意: 删除多个文件和目录时, 请确保每一个文件和目录都存在, 否则删除操作会失败.

被删除的文件或目录可在网盘文件回收站找回.

例子

拷贝文件/目录

注意: 拷贝多个文件和目录时, 请确保每一个文件和目录都存在, 否则拷贝操作会失败.

例子

移动/重命名文件/目录

注意: 移动多个文件和目录时, 请确保每一个文件和目录都存在, 否则移动操作会失败.

例子

离线下载

离线下载支持http/https/ftp/电驴/磁力链协议

添加离线下载任务

添加任务成功之后, 返回离线下载的任务ID.

精确查询离线下载任务

查询离线下载任务列表

取消离线下载任务

删除离线下载任务

例子

显示程序环境变量

BAIDUPCS_GO_CONFIG_DIR: 为具体的存储目录,

BAIDUPCS_GO_VERBOSE: 是否启用调试.

显示和修改程序配置项

注意: v3.5 以后, 程序对配置文件储存路径的寻找做了调整, 配置文件所在的目录可以是程序本身所在目录, 也可以是家目录.

配置文件所在的目录为家目录的情况:

Windows: %APPDATA%\BaiduPCS-Go

其他操作系统: $HOME/.config/BaiduPCS-Go

可通过设置环境变量 BAIDUPCS_GO_CONFIG_DIR, 指定配置文件存放的目录.

例子

工具箱

目前工具箱支持加解密文件等.

初级使用教程

新手建议: 双击运行程序, 进入仿 Linux shell 的 cli 交互模式;

cli交互模式下, 光标所在行的前缀应为 BaiduPCS-Go >, 如果登录了百度帐号则格式为 BaiduPCS-Go: $

以下例子的命令, 均为 cli交互模式下的命令

运行命令的正确操作: 输入命令, 按一下回车键 (键盘上的 Enter 键), 程序会接收到命令并输出结果

1. 查看程序使用说明

cli交互模式下, 运行命令 help

2. 登录百度帐号 (必做)

cli交互模式下, 运行命令 login -h (注意空格) 查看帮助

cli交互模式下, 运行命令 login 程序将会提示你输入百度用户名(手机号/邮箱/用户名)和密码, 必要时还可以在线验证绑定的手机号或邮箱

3. 切换网盘工作目录

cli交互模式下, 运行命令 cd /我的资源 将工作目录切换为 /我的资源 (前提: 该目录存在于网盘)

目录支持通配符匹配, 所以你也可以这样: 运行命令 cd /我的*cd /我的?? 将工作目录切换为 /我的资源, 简化输入.

将工作目录切换为 /我的资源 成功后, 运行命令 cd .. 切换上级目录, 即将工作目录切换为 /

为什么要这样设计呢, 举个例子,

假设 你要下载 /我的资源 内名为 1.mp42.mp4 两个文件, 而未切换工作目录, 你需要依次运行以下命令:

而切换网盘工作目录之后, 依次运行以下命令:

这样就达到了简化输入的目的

4. 网盘内列出文件和目录

cli交互模式下, 运行命令 ls -h (注意空格) 查看帮助

cli交互模式下, 运行命令 ls 来列出当前所在目录的文件和目录

cli交互模式下, 运行命令 ls /我的资源 来列出 /我的资源 内的文件和目录

cli交互模式下, 运行命令 ls .. 来列出当前所在目录的上级目录的文件和目录

5. 下载文件

说明: 下载的文件默认保存到 download/ 目录 (文件夹)

cli交互模式下, 运行命令 d -h (注意空格) 查看帮助

cli交互模式下, 运行命令 d /我的资源/1.mp4 来下载位于 /我的资源/1.mp4 的文件 1.mp4 , 该操作等效于运行以下命令:

现在已经支持目录 (文件夹) 下载, 所以, 运行以下命令, 会下载 /我的资源 内的所有文件 (违规文件除外):

参见 例6 设置下载最大并发量

6. 设置下载最大并发量

cli交互模式下, 运行命令 config set -h (注意空格) 查看设置帮助以及可供设置的值

cli交互模式下, 运行命令 config set -max_parallel 250 将下载最大并发量设置为 250

下载最大并发量建议值: 50~500, 太低下载速度提升不明显甚至速度会变为0, 太高可能会导致程序出错被操作系统结束掉.

7. 退出程序

运行命令 quitexit 或 组合键 Ctrl+C 或 组合键 Ctrl+D

常见问题

参见 常见问题

TODO

  1. 上传大文件;
  2. 回收站操作, 例如查询回收站文件, 还原文件或目录等.

交流反馈

提交Issue: Issues