一个用于百度网盘API的Python客户端,支持通过pip安装并提供命令行工具。
- 📤 上传文件和目录到百度网盘
- 📥 从百度网盘下载文件和目录
- 📋 列出网盘文件
- 📊 获取用户信息和配额信息
- 🚀 支持断点续传
- 📈 显示上传/下载进度条
- 💻 交互式 Shell 支持(类似 Linux 命令)
- 📝 查看文件内容(cat, head, tail)
- 📊 CSV 文件查看和筛选(rcsv)
- 🔍 支持通配符匹配(*, ?)
- 📜 支持批量脚本执行
pip install bdnd对于 Windows 用户,也可以下载预编译的安装包:
- 从 Releases 下载
bdnd-setup-x.x.x.exe - 运行安装程序,按照提示完成安装
- 安装完成后,可以在命令行中使用
bdnd命令
注意: 如果使用安装包,无需安装 Python 环境。
自行构建: 如需自行构建 Windows 安装包,请参考 BUILD_WINDOWS.md
安装后,你可以直接使用 bdnd 命令:
# 上传文件到网盘
bdnd /path/to/local/file /path/on/baidu/pan
# 下载文件
bdnd /path/on/baidu/pan /path/to/local/file
# 明确指定模式
bdnd --mode upload /local/dir /remote/dir/
bdnd --mode download /remote/dir/ /local/dir/
# 指定access token
bdnd --access-token YOUR_TOKEN /local/file /remote/file进入交互式 Shell,支持类似 Linux 的命令操作:
# 进入交互式 Shell
bdnd
# 设置默认工作路径
bdnd --set-home /apps/autodl
# 查看当前默认路径
bdnd --show-home在交互式 Shell 中,你可以使用以下命令:
cd [path]- 切换目录(支持cd ..)ls [path] [-s]- 列出文件(-s显示目录大小,支持通配符*,?)pwd- 显示当前路径du [path] [-s]- 显示磁盘使用情况mkdir <path>- 创建目录upload <local_path> [remote_path]- 上传文件或目录download <remote_path> [local_path]- 下载文件或目录mv <old_path> <new_name>- 重命名文件或目录(支持通配符)cat <path>- 查看文件内容和信息head [-n N] <path>- 查看文件前 N 行(默认 10 行)tail [-n N] <path>- 查看文件后 N 行(默认 10 行)rcsv [-n N] [-c] [-s col1,col2,...] <path>- 查看 CSV 文件(类似 SQL SELECT)whoami- 显示用户和配额信息clear- 清屏help [command]- 显示帮助信息exit/quit- 退出 Shell
支持执行 .bdnd 脚本文件:
# 执行批量脚本
bdnd script.bdnd脚本示例(script.bdnd):
cd /apps/autodl
ls
mkdir test
upload ./local_file.txt test/from bdnd import BaiduNetdiskClient
# 创建客户端
client = BaiduNetdiskClient(access_token="YOUR_ACCESS_TOKEN")
# 上传文件
client.upload_file_auto("local_file.txt", "/remote/path/file.txt")
# 上传目录
client.upload_directory("local_dir", "/remote/dir/", recursive=True)
# 下载文件
client.download_file_by_path("/remote/path/file.txt", "local_file.txt")
# 下载目录
client.download_directory("/remote/dir/", "local_dir", recursive=True)
# 列出文件(返回列表)
files = client.list_files(directory="/apps/autodl")
for file_info in files:
print(f"{file_info.get('server_filename')}: {file_info.get('size')} bytes")
# 获取用户信息
user_info = client.get_user_info()
# 获取配额信息
quota = client.get_quota()你可以通过环境变量设置 access token:
export baidu_netdisk_access_token="YOUR_ACCESS_TOKEN"CLI会自动从环境变量读取。
你可以设置默认的工作路径,这样在交互式 Shell 中会自动切换到该路径:
# 设置默认路径
bdnd --set-home /apps/autodl
# 查看当前默认路径
bdnd --show-home设置后,每次进入交互式 Shell 都会自动切换到该路径。
你需要从百度开放平台获取 access token。可以使用以下方法构建授权URL:
from bdnd import BaiduNetdiskClient
# 构建授权URL
auth_url = BaiduNetdiskClient.build_authorize_url(
client_id="YOUR_CLIENT_ID",
redirect_uri="oob"
)
print(auth_url)访问该URL并授权后,可以从重定向URL中获取 access token。
- requests >= 2.25.0
- tqdm >= 4.60.0
- urllib3 >= 1.26.0
- env-key-manager >= 0.1.0
- tabulate >= 0.9.0
MIT License
欢迎提交 Issue 和 Pull Request!
项目地址: https://github.com/Rookie-Package/bdnd
- 交互式 Shell 支持
- 支持常用 Linux 命令(cd, ls, pwd, mkdir, upload, download, mv, cat, head, tail, rcsv, whoami)
- 支持通配符匹配(*, ?)
- 支持批量脚本执行(.bdnd 文件)
- 支持设置默认工作路径
- CSV 文件查看和筛选功能
- 命令自动补全支持
- 新增 Windows 安装包支持(PyInstaller)
- 改进代理处理,自动禁用系统代理设置
- 更新依赖:移除 pandas 和 numpy,添加 tabulate
- 初始版本
- 支持文件上传/下载
- 支持目录上传/下载
- CLI工具支持