📋 目录
- 概述
- 环境要求
- 安装 rclone
- 配置 123 网盘
- 安装 Python 依赖
- WebDAV API 服务
- WebDAV 管理器
- 常用命令
- 故障排查
- 附录
概述
架构
用户浏览器
↓
WebDAV 管理器(HTML 界面)
↓
Flask API 服务器(Python)
↓
rclone 命令行工具
↓
123 网盘 WebDAV 服务
组件
| 组件 | 版本 | 用途 |
|---|
| rclone | v1.73.2 | 云存储同步工具 |
| Flask | v3.1.3 | Python Web 框架 |
| 123 网盘 | - | 20TB 云存储 |
| FUSE3 | v3.14.0 | 文件系统支持(容器限制) |
意义
技术突破:
- 绕过 CORS 限制(后端代理方案)
- 容器 FUSE 限制应对(命令替代挂载)
- 密码加密存储(rclone obscure)
环境
系统要求
| 系统 | 状态 | 说明 |
|---|
| Linux | ✅ 完全支持 | CNB 容器/Ubuntu/Debian |
| macOS | ✅ 完全支持 | Homebrew 安装 |
| Windows | ✅ 完全支持 | 需管理员权限 |
依赖要求
- Python 3.8+
- pip 23.0+
- curl(下载安装脚本)
- 网络连接(访问 123 网盘)
安装 rclone
Linux(CNB 容器/Ubuntu/Debian)
curl https://rclone.org/install.sh | sudo bash
rclone version
macOS
brew install rclone
rclone version
Windows
choco install rclone
配置 123 网盘
交互式配置(推荐)
rclone config
按提示输入:
手动配置(快速)
mkdir -p ~/.config/rclone
cat > ~/.config/rclone/rclone.conf << 'EOF'
[123pan]
type = webdav
EOF
获取加密密码
rclone obscure 你的明文密码
验证配置
rclone ls 123pan:/
rclone mkdir 123pan:/test
rclone rmdir 123pan:/test
安装 Python 依赖
CNB 容器(自动)
.cnb.yml 已配置自动安装:
- name: 安装 WebDAV API 依赖(Flask)
script: |
pip3 install flask --break-system-packages \
-i https://pypi.mirrors.ustc.edu.cn/simple/
本地手动安装
pip install flask
python3 -c "import flask; print(flask.__version__)"
WebDAV API 服务
脚本位置
/workspace/bin/webdav_api.py
功能说明
| API 端点 | 方法 | 功能 |
|---|
/ | GET | WebDAV 管理器界面 |
/api/health | GET | 健康检查 |
/api/list | POST | 列出目录内容 |
/api/upload | POST | 上传文件 |
/api/download | POST | 下载文件 |
/api/mkdir | POST | 创建文件夹 |
/api/delete | POST | 删除文件 |
/api/backup/qwen | POST | 备份记忆文件 |
/api/backup/tickets | POST | 备份工单数据 |
启动服务
python3 bin/webdav_api.py
nohup python3 bin/webdav_api.py > /tmp/webdav.log 2>&1 &
pkill -f webdav_api.py
访问地址
| 环境 | 地址 |
|---|
| 本地 | http://localhost:5000/ |
| CNB 公网 | https://hp1a4zozxl-5000.cnb.run/ |
WebDAV 管理器
文件位置
/workspace/public/webdav_manager.html
功能特性
- ✅ 文件浏览(树形目录)
- ✅ 上传文件(拖拽支持)
- ✅ 下载文件
- ✅ 创建文件夹
- ✅ 删除文件
- ✅ 一键备份(.qwen/、tests/)
- ✅ 进度显示
使用说明
- 访问
http://localhost:5000/ - 浏览文件 - 双击文件夹进入
- 上传文件 - 拖拽到上传区域或点击"上传"按钮
- 下载文件 - 双击文件自动下载
- 备份 - 点击底部备份按钮
常用命令
文件操作
rclone ls 123pan:/
rclone ls 123pan:/backup/
rclone lsd 123pan:/
rclone tree 123pan:/
rclone copy /workspace/
rclone copy 123pan:/backup/
rclone delete 123pan:/backup/
rclone purge 123pan:/backup/
rclone mkdir 123pan:/backup/
同步备份
rclone sync -v /workspace/.qwen/ 123pan:/backup/qwen/
rclone sync -v /workspace/tests/ 123pan:/backup/tickets/
rclone copy 123pan:/backup/qwen/ /workspace/.qwen_restored/
查看信息
rclone size 123pan:/backup/
rclone md5sum 123pan:/backup/
rclone cat 123pan:/backup/
附录
A. 项目文件清单
新增脚本
| 文件 | 用途 | 大小 |
|---|
bin/webdav_api.py | WebDAV API 后端 | 205 行 |
bin/webdav_proxy.js | Node.js 代理(备用) | 150 行 |
public/webdav_manager.html | WebDAV 管理器界面 | 450 行 |
配置文件
| 文件 | 用途 |
|---|
.cnb.yml | CNB 构建配置(新增 Flask 安装步骤) |
package.json | npm 依赖(webdav 包) |
~/.config/rclone/rclone.conf | rclone 配置(密码加密) |
依赖包
| 依赖 | 版本 | 用途 |
|---|
| flask | 3.1.3 | Python Web 框架 |
| webdav | 5.9.0 | Node.js WebDAV 客户端 |
| rclone | 1.73.2 | 云存储同步工具 |
| fuse3 | 3.14.0 | 文件系统支持(容器限制) |
B. 目录结构
/workspace/
├── bin/
├── public/
├── docs/
├── webdav_data/ # rclone 挂载点(未启用)
├── .qwen/ # 记忆文件(备份目标)
└── tests/ # 工单数据(备份目标)
C. 环境变量
export WEBDAV_URL=https://webdav.123pan.cn/webdav
export WEBDAV_USERNAME=13564306244
export WEBDAV_PASSWORD=你的密码
D. 定时备份(cron)
0 2 * * * rclone sync -v /workspace/.qwen/ 123pan:/backup/qwen/
0 2 * * * rclone sync -v /workspace/tests/ 123pan:/backup/tickets/
E. 带宽限制
rclone copy --bwlimit 1M /workspace/ 123pan:/backup/
rclone copy --bwlimit 500K 123pan:/backup/ /workspace/
F. 断点续传
rclone copy /workspace/ 123pan:/backup/
G. 日志记录
rclone copy -vv /workspace/ 123pan:/backup/ 2>&1 | tee /tmp/rclone.log
tail -f /tmp/rclone.log
更新日志
| 日期 | 版本 | 更新内容 | 更新人 |
|---|
| 2026-03-13 | v1.0 | 初始版本,完整配置指南 | 酷小果 |
参考资料
所有评论(0)