Baidu Netdisk Client - A Python client for Baidu Netdisk API with CLI support
Project description
BDND - Baidu Netdisk Client
一个用于百度网盘API的Python客户端,支持通过pip安装并提供命令行工具。
功能特性
- 📤 上传文件和目录到百度网盘
- 📥 从百度网盘下载文件和目录
- 📋 列出网盘文件
- 📊 获取用户信息和配额信息
- 🚀 支持断点续传
- 📈 显示上传/下载进度条
- 💻 交互式 Shell 支持(类似 Linux 命令)
- 📝 查看文件内容(cat, head, tail)
- 📊 CSV 文件查看和筛选(rcsv)
- 🔍 支持通配符匹配(*, ?)
- 📜 支持批量脚本执行
安装
方式一:使用 pip(推荐)
pip install bdnd
方式二:Windows 安装包
对于 Windows 用户,也可以下载预编译的安装包:
- 从 Releases 下载
bdnd-setup-x.x.x.exe - 运行安装程序,按照提示完成安装
- 安装完成后,可以在命令行中使用
bdnd命令
注意: 如果使用安装包,无需安装 Python 环境。
自行构建: 如需自行构建 Windows 安装包,请参考 BUILD_WINDOWS.md
快速开始
CLI 使用
安装后,你可以直接使用 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
进入交互式 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/
Python API 使用
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
你需要从百度开放平台获取 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
更新日志
1.1.0
- 交互式 Shell 支持
- 支持常用 Linux 命令(cd, ls, pwd, mkdir, upload, download, mv, cat, head, tail, rcsv, whoami)
- 支持通配符匹配(*, ?)
- 支持批量脚本执行(.bdnd 文件)
- 支持设置默认工作路径
- CSV 文件查看和筛选功能
- 命令自动补全支持
- 新增 Windows 安装包支持(PyInstaller)
- 改进代理处理,自动禁用系统代理设置
- 更新依赖:移除 pandas 和 numpy,添加 tabulate
1.0.0
- 初始版本
- 支持文件上传/下载
- 支持目录上传/下载
- CLI工具支持
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bdnd-1.1.2.tar.gz.
File metadata
- Download URL: bdnd-1.1.2.tar.gz
- Upload date:
- Size: 30.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2fcd73ae7ee34806020d969b8cc94ec91edf64a48df50d5fda0573fb49d3c1d1
|
|
| MD5 |
9b854480fe7185dbfdae0056c2be39b6
|
|
| BLAKE2b-256 |
82052efb9760d538263685010759814180d1a76c9be225444e1e85ca3aaaebb2
|
File details
Details for the file bdnd-1.1.2-py3-none-any.whl.
File metadata
- Download URL: bdnd-1.1.2-py3-none-any.whl
- Upload date:
- Size: 28.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60eaec5882ca602101c8d64b1cffab0f4648a76bde7a6bd37e1997d73ae53498
|
|
| MD5 |
4b7a01e74b810d193f145a5d7e7e788c
|
|
| BLAKE2b-256 |
c4f4e6dde81307af7e88401b1d7642515c23d23a5324287c8316764c3dcfc367
|