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
2.2 授权账户
首次使用时,需要对您的百度网盘账户进行授权。只需执行任意一个bypy命令即可触发授权流程,例如:
bypy info
终端会生成一个授权链接。请将此链接复制到浏览器中打开,登录您的百度账户,然后复制页面上生成的授权码,将其粘贴回终端并按回车即可完成授权。授权信息会保存在本地的 ~/.bypy 目录中,后续使用无需重复此步骤。
注意:
如果您没有使用虚拟环境,可能需要使用python -m bypy <命令>的形式执行。为了方便,可以通过设置别名来简化命令:alias bypy='python -m bypy'将此行添加到您的
~/.bashrc或~/.zshrc文件中,即可永久生效。
3. 基本文件操作
bypy 的所有操作都默认在您百度网盘的 /apps/bypy/(即“我的应用数据/bypy”)目录下进行。
- 查看文件:列出网盘目录下的文件和文件夹。
bypy list - 上传文件/目录:将本地文件上传至网盘。
# 上传单个文件 bypy upload [本地文件路径] [网盘目标路径] # 同步上传整个目录 bypy syncup [本地目录路径] [网盘目标目录] - 下载文件/目录:从网盘下载文件至本地。
# 下载单个文件 bypy downfile [网盘文件] [本地路径] # 下载整个目录 bypy downdir [网盘目录] [本地目录]download命令是downfile和downdir的通用形式,可以智能判断是文件还是目录。
4. 进阶使用:结合 Aria2 实现多线程高速下载
bypy 的默认下载是单线程的,速度有限。为了最大化下载速度,强烈推荐结合强大的多线程下载工具 aria2。
4.1 安装 aria2 (关键前提)
为了启用 bypy 的多线程高速下载功能,您的系统上必须预先安装 aria2。aria2 是一个独立的命令行程序,bypy 只是调用它来完成下载任务。以下是不同操作系统上最常见的安装方法。
-
通过 apt 安装 (适用于 Debian, Ubuntu 等)
sudo apt update && sudo apt install aria2 -
通过 yum/dnf 安装 (适用于 CentOS, RHEL, Fedora 等)
对于老版本系统(如 CentOS 7),使用yum:sudo yum install aria2对于新版本系统(如 CentOS 8+, Fedora),使用
dnf:sudo dnf install aria2 -
通过 Homebrew 安装 (适用于 macOS)
brew install aria2 -
通过 Conda 安装 (适用于 Anaconda/Miniconda 环境)
如果您使用 Conda 管理环境,aria2也可以通过conda-forge渠道安装,好处是可以将依赖隔离在特定环境中。conda install -c conda-forge aria2
验证安装
无论使用哪种方法,安装完成后,您都可以通过以下命令来验证 aria2 是否安装成功:
aria2c --version
如果终端返回了 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"
命令解析:
| 组件 | 作用 |
|---|---|
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
如果您希望这两个文件并行下载,只需在两个不同的终端窗口中分别执行上述两条命令即可。
5. 获取帮助
如果您想了解更多命令或参数的用法,可以使用内置的帮助系统:
# 查看所有可用命令
bypy -h
# 查看特定命令的详细用法(例如 list 命令)
bypy help list
参考文献
- 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
- 知乎 - bypy-命令行下使用百度网盘:
更多推荐
所有评论(0)