bypy 结合 aria2:在 Linux 命令行中高速下载/上传百度网盘文件
摘要
本文旨在为需要在Linux命令行环境(尤其是远程服务器)下与百度网盘进行文件交互的用户提供一份详尽指南。文章将详细介绍如何通过 Python 工具 bypy 完成授权、文件管理等基本操作,并核心讲解如何调用强大的第三方下载器 aria2 来实现多线程加速,从而在服务器上实现百度网盘文件的高速、直接下载。
1. 简介:为什么要选择 bypy?
在进行深度学习或数据分析等工作时,我们经常需要将大型文件(如数据集、预训练模型)下载到远程服务器上。如果这些文件存储在百度网盘,传统操作流程通常是:
低效路径:从百度网盘将文件下载到个人电脑。
等待下载完成后,再通过 XFTP/SFTP 等工具将文件上传到远程服务器。
这个过程存在显而易见的痛点:
双倍时间消耗:一次下载,一次上传,耗时加倍。
带宽瓶颈:整个过程的速度受限于您个人电脑的网络带宽,而非服务器的高速带宽。
本地依赖:需要个人电脑长时间开机,且占用大量磁盘空间。
bypy 工具彻底解决了这个问题,它允许您的服务器直接与百度网盘进行数据传输,实现了“服务器到云端”的点对点操作。
使用 bypy 的核心优势:
高效直接:文件直接从百度网盘下载到服务器,省去了本地中转,极大提升了效率。
纯命令行操作:无需图形界面(UI),完美适用于远程SSH环境。
突破限速:通过调用如 aria2 这样的多线程下载工具,bypy 可以轻松跑满服务器带宽,实现远超官方客户端的下载速度。
功能丰富:支持上传、下载、同步、文件管理等多种操作。
2. 安装与授权
2.1 安装 bypy
bypy 可以通过 pip 直接安装:
pip install bypy
AI写代码
bash
1
2.2 授权账户
首次使用时,需要对您的百度网盘账户进行授权。只需执行任意一个bypy命令即可触发授权流程,例如:
bypy info
AI写代码
bash
1
终端会生成一个授权链接。请将此链接复制到浏览器中打开,登录您的百度账户,然后复制页面上生成的授权码,将其粘贴回终端并按回车即可完成授权。授权信息会保存在本地的 ~/.bypy 目录中,后续使用无需重复此步骤。
注意:
如果您没有使用虚拟环境,可能需要使用 python -m bypy <命令> 的形式执行。为了方便,可以通过设置别名来简化命令:
alias bypy='python -m bypy'
AI写代码
bash
1
将此行添加到您的 ~/.bashrc 或 ~/.zshrc 文件中,即可永久生效。
3. 基本文件操作
bypy 的所有操作都默认在您百度网盘的 /apps/bypy/(即“我的应用数据/bypy”)目录下进行。
查看文件:列出网盘目录下的文件和文件夹。
bypy list
AI写代码
bash
1
上传文件/目录:将本地文件上传至网盘。
# 上传单个文件
bypy upload [本地文件路径] [网盘目标路径]
# 同步上传整个目录
bypy syncup [本地目录路径] [网盘目标目录]
AI写代码
bash
1
2
3
4
下载文件/目录:从网盘下载文件至本地。
# 下载单个文件
bypy downfile [网盘文件] [本地路径]
# 下载整个目录
bypy downdir [网盘目录] [本地目录]
AI写代码
bash
1
2
3
4
download 命令是 downfile 和 downdir 的通用形式,可以智能判断是文件还是目录。
4. 进阶使用:结合 Aria2 实现多线程高速下载
bypy 的默认下载是单线程的,速度有限。为了最大化下载速度,强烈推荐结合强大的多线程下载工具 aria2。
4.1 安装 aria2 (关键前提)
为了启用 bypy 的多线程高速下载功能,您的系统上必须预先安装 aria2。aria2 是一个独立的命令行程序,bypy 只是调用它来完成下载任务。以下是不同操作系统上最常见的安装方法。
通过 apt 安装 (适用于 Debian, Ubuntu 等)
sudo apt update && sudo apt install aria2
AI写代码
bash
1
通过 yum/dnf 安装 (适用于 CentOS, RHEL, Fedora 等)
对于老版本系统(如 CentOS 7),使用 yum:
sudo yum install aria2
AI写代码
bash
1
对于新版本系统(如 CentOS 8+, Fedora),使用 dnf:
sudo dnf install aria2
AI写代码
bash
1
通过 Homebrew 安装 (适用于 macOS)
brew install aria2
AI写代码
bash
1
通过 Conda 安装 (适用于 Anaconda/Miniconda 环境)
如果您使用 Conda 管理环境,aria2 也可以通过 conda-forge 渠道安装,好处是可以将依赖隔离在特定环境中。
conda install -c conda-forge aria2
AI写代码
bash
1
验证安装
无论使用哪种方法,安装完成后,您都可以通过以下命令来验证 aria2 是否安装成功:
aria2c --version
AI写代码
bash
1
如果终端返回了 aria2 的版本号及相关信息,则证明安装成功,bypy 已经可以调用它了。
4.2 启用 aria2 下载器
在确认 aria2 已根据上一步安装完毕后,下载时使用 --downloader 参数指定 aria2 作为下载器。
4.3 配置多线程参数以“拉满”速度
为了真正发挥 aria2 的威力,我们需要通过 --downloader-arguments 参数向其传递多线程指令。关键参数是 -s (分割数/线程数) 和 -x (单服务器最大连接数)。
示例1:高速下载单个文件
以下命令使用16个线程高速下载一个名为 Your_Large_File.zip 的文件:
bypy --downloader aria2 --downloader-arguments="-s 16 -x 16" download "Your_Large_File.zip"
AI写代码
bash
1
命令解析:
组件 作用
bypy 主程序。
--downloader aria2 指定 aria2 作为外部下载工具。
--downloader-arguments="..." 将引号内的参数直接传递给 aria2。这是实现加速的核心。
"-s 16 -x 16" aria2 的参数:将文件分割成16块,用16个连接同时下载。
download ... bypy 的下载指令,后面跟着一个要下载的网盘文件名。
示例2:如何下载多个文件
bypy download 命令一次只能处理一个下载任务。要下载多个文件,您必须分多次执行命令。
# 1. 下载第一个文件
bypy --downloader aria2 --downloader-arguments="-s 16 -x 16" download DOTA_split.zip
# 2. 第一个完成后,下载第二个文件
bypy --downloader aria2 --downloader-arguments="-s 16 -x 16" download spliting_generating.zip
AI写代码
bash
1
2
3
4
5
如果您希望这两个文件并行下载,只需在两个不同的终端窗口中分别执行上述两条命令即可。
5. 获取帮助
如果您想了解更多命令或参数的用法,可以使用内置的帮助系统:
# 查看所有可用命令
bypy -h
# 查看特定命令的详细用法(例如 list 命令)
bypy help list
AI写代码
bash
1
2
3
4
参考文献
bypy 项目主页 (GitHub): https://github.com/houtianze/bypy
Aria2 官方网站: https://aria2.github.io/
CSDN 原文参考: 诸神缄默不语. bypy:使用Linux命令行上传及下载百度云盘文件(远程服务器大文件传输必备). CSDN博客. https://blog.csdn.net/PolarisRisingWar/article/details/121887801
其他参考资料:
知乎 - bypy-命令行下使用百度网盘: https://zhuanlan.zhihu.com/p/34493335
不吐槽,毋宁死 - 『 百度网盘下载之bypy』 有槽必吐: https://www.zzxworld.com/posts/fast-download-from-baidu-pan-with-bypy
————————————————
版权声明:本文为CSDN博主「Yuchen Wu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_64107840/article/details/151191809