大家好,今天给大家带来一个我开发的项目:BaiduPCS-Rust,它是一个高性能的 百度网盘客户端,基于 Rust 和 Vue 3 开发,专为需要高效下载和自动化备份的用户设计,尤其适用于 NAS / 自建服务器 环境。
如果你是百度网盘会员,但是在 NAS 或者 Docker 环境下下载速度总是达不到预期,本项目将帮助你解决这个问题!通过并发下载、断点续传、秒传等技术,最大限度利用会员带宽,轻松实现满速下载。
🎯 项目背景
作为长期依赖 百度网盘 的用户,我在使用官方客户端时发现,在 NAS 环境下,下载速度远未达到会员应有的速度,尤其是使用 Docker 进行自建时,速度限制更为明显。
同时,由于本地备份、文件共享等需求的增加,手动管理下载上传文件变得越来越繁琐。这些问题促使我开始动手做一个高效的解决方案——BaiduPCS-Rust。
🌟 项目亮点
🔥 高性能下载引擎
BaiduPCS-Rust 通过以下方式提升下载性能:
- 多线程并发下载:单文件最多支持 8 个分片并发下载,并且支持根据带宽自动调节线程数。
- 断点续传:支持断点续传,下载过程中即使网络中断也可以继续,不会浪费带宽。
- 文件夹递归下载:支持整个文件夹的下载,自动创建下载任务,提升批量下载效率。
- CDN链接刷新机制:针对网络不稳定或者速度异常的文件,定期刷新 CDN 链接,最大化下载速度。
💾 自动备份与秒传支持
除了高效的下载,BaiduPCS-Rust 还支持自动将本地文件备份到百度网盘,避免手动操作繁琐:
- 自动备份:支持将本地文件或文件夹定时备份到百度网盘。(待实现)
- 秒传支持:后端秒传支持,上传相同文件时速度超快。
🖥 现代化 Web 界面
项目提供了一个简洁而现代的 Web 界面,使用 Vue 3 + Element Plus,你可以轻松地浏览文件、管理下载、上传任务,实时查看任务进度。
- 支持任务队列管理、暂停/继续下载、上传任务管理等功能。
- 支持实时显示下载速度、进度百分比和预计剩余时间(ETA)。
🔧 Docker 一键部署
对于需要在 Docker 环境下使用的用户,本项目提供了 一键部署 功能,让你可以快速启动和运行。具体的 Docker 部署文档和构建步骤请参考 GitHub 仓库,详细介绍了如何通过 Docker 或 Docker Compose 部署项目。
🛠 技术架构与技术栈
BaiduPCS-Rust 是一个全栈项目,后端使用 Rust 编写,前端使用 Vue 3 和 Element Plus,通过 WebSocket 实现任务状态的实时更新。
后端
- Rust 1.75+
- Web 框架:Axum 0.7
- 异步运行时:Tokio
- HTTP 客户端:Reqwest
- 日志系统:Tracing
前端
- 框架:Vue 3 + Composition API
- UI 组件库:Element Plus
- 状态管理:Pinia
- 构建工具:Vite
- HTTP 客户端:Axios
部署
- 容器化:Docker + Docker Compose
- 多平台支持:Windows、Linux、macOS
🏁 如何快速开始
1. 克隆项目
git clone https://github.com/komorebiCarry/BaiduPCS-Rust.git
cd BaiduPCS-Rust
2. 启动服务
详细的启动步骤和配置文档,请参考 GitHub 页面,其中包含了如何使用 Docker 或源码构建来部署项目。
🚀 使用场景
BaiduPCS-Rust 特别适合以下场景:
- 自建 NAS 环境的用户:需要高效稳定的百度网盘下载工具。
- 需要大量文件备份的用户:自动化备份和秒传能力,节省时间和带宽。
- 开发者和服务器运维人员:可以在 Docker 环境中轻松部署和管理。
📝 最后
BaiduPCS-Rust 是一个 开源项目,欢迎开发者们提出 问题反馈 或者 贡献代码。如果你正在寻找一个可靠的工具来优化百度网盘的下载和上传,或者想要在 自建 NAS 环境中自动化文件备份,BaiduPCS-Rust 将会是一个不错的选择。
👉 GitHub 地址:BaiduPCS-Rust
如果你觉得这个项目对你有帮助,请给个 Star,也欢迎大家讨论和交流!
💬 贡献与讨论
如果你有任何问题或者想为这个项目贡献代码,欢迎提交 Issue 或者 Pull Request。
有任何使用或配置上的问题,也可以在 GitHub 上提问,我会尽快回复。