📋 目录

  1. 概述
  2. 环境要求
  3. 安装 rclone
  4. 配置 123 网盘
  5. 安装 Python 依赖
  6. WebDAV API 服务
  7. WebDAV 管理器
  8. 常用命令
  9. 故障排查
  10. 附录

概述

架构

用户浏览器
    ↓
WebDAV 管理器(HTML 界面)
    ↓
Flask API 服务器(Python)
    ↓
rclone 命令行工具
    ↓
123 网盘 WebDAV 服务

组件

组件版本用途
rclonev1.73.2云存储同步工具
Flaskv3.1.3Python Web 框架
123 网盘-20TB 云存储
FUSE3v3.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

# 输出示例:
# rclone v1.73.2
# - os/version: debian 12.5 (64 bit)
# - os/kernel: 5.4.241 (x86_64)

macOS

# Homebrew 安装
brew install rclone

# 验证
rclone version

Windows

# 方法 1: Chocolatey
choco install rclone

# 方法 2: 手动下载
# 1. 访问 https://rclone.org/downloads/
# 2. 下载 rclone-*-windows-amd64.zip
# 3. 解压到 C:\rclone
# 4. 添加 C:\rclone 到 PATH 环境变量

配置 123 网盘

交互式配置(推荐)

rclone config

按提示输入

手动配置(快速)

# 创建配置目录
mkdir -p ~/.config/rclone

# 编辑配置文件
cat > ~/.config/rclone/rclone.conf << 'EOF'
[123pan]
type = webdav

EOF

获取加密密码

# 使用 rclone 自带工具加密
rclone obscure 你的明文密码

# 输出示例:g12345678U

验证配置

# 列出根目录
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/

本地手动安装

# 安装 Flask
pip install flask

# 验证安装
python3 -c "import flask; print(flask.__version__)"

WebDAV API 服务

脚本位置

/workspace/bin/webdav_api.py

功能说明

API 端点方法功能
/GETWebDAV 管理器界面
/api/healthGET健康检查
/api/listPOST列出目录内容
/api/uploadPOST上传文件
/api/downloadPOST下载文件
/api/mkdirPOST创建文件夹
/api/deletePOST删除文件
/api/backup/qwenPOST备份记忆文件
/api/backup/ticketsPOST备份工单数据

启动服务

# 开发模式(带调试)
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/)
  • ✅ 进度显示

使用说明

  1. 访问 http://localhost:5000/
  2. 浏览文件 - 双击文件夹进入
  3. 上传文件 - 拖拽到上传区域或点击"上传"按钮
  4. 下载文件 - 双击文件自动下载
  5. 备份 - 点击底部备份按钮

常用命令

文件操作

# 列出文件
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/

同步备份

# 备份 .qwen/ 目录
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/

# 查看文件 MD5
rclone md5sum 123pan:/backup/

# 查看文件内容
rclone cat 123pan:/backup/


附录

A. 项目文件清单

新增脚本
文件用途大小
bin/webdav_api.pyWebDAV API 后端205 行
bin/webdav_proxy.jsNode.js 代理(备用)150 行
public/webdav_manager.htmlWebDAV 管理器界面450 行
配置文件
文件用途
.cnb.ymlCNB 构建配置(新增 Flask 安装步骤)
package.jsonnpm 依赖(webdav 包)
~/.config/rclone/rclone.confrclone 配置(密码加密)
依赖包
依赖版本用途
flask3.1.3Python Web 框架
webdav5.9.0Node.js WebDAV 客户端
rclone1.73.2云存储同步工具
fuse33.14.0文件系统支持(容器限制)

B. 目录结构

/workspace/
├── bin/
├── public/
├── docs/
├── webdav_data/               # rclone 挂载点(未启用)
├── .qwen/                     # 记忆文件(备份目标)
└── tests/                     # 工单数据(备份目标)

C. 环境变量

# WebDAV 配置(可选,从环境变量读取)
export WEBDAV_URL=https://webdav.123pan.cn/webdav
export WEBDAV_USERNAME=13564306244
export WEBDAV_PASSWORD=你的密码

D. 定时备份(cron)

# 每天凌晨 2 点自动备份
0 2 * * * rclone sync -v /workspace/.qwen/ 123pan:/backup/qwen/
0 2 * * * rclone sync -v /workspace/tests/ 123pan:/backup/tickets/

E. 带宽限制

# 限制上传速度为 1MB/s
rclone copy --bwlimit 1M /workspace/ 123pan:/backup/

# 限制下载速度为 500KB/s
rclone copy --bwlimit 500K 123pan:/backup/ /workspace/

F. 断点续传

# rclone 默认支持断点续传
# 传输中断后继续执行相同命令即可
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-13v1.0初始版本,完整配置指南酷小果

参考资料


更多推荐