WsgiDAV 4.3 介绍与选型指南

WsgiDAV 4.3 介绍与选型指南:官方资料溯源的 Python WSGI WebDAV 服务器定位、v4.3.5 版本基准、provider/域控制器/中间件管线架构、认证与锁管理特性、官方快速上手示例、适用限制,以及与 hacdias webdav、Nginx、Apache httpd、Rclone 的量化选型对比(2026-10-19 实查,未做本地安装实测)。

WsgiDAVWsgiDAVWebDAV 服务器2026/10/19

WsgiDAV 4.3 介绍与选型指南

目标:基于 WsgiDAV 官方公开资料(GitHub 官方仓库 mar10/wsgidav 及其 Releases、官方文档站 mar10.github.io/wsgidav)梳理其定位、架构、功能与选型口径,并与 hacdias webdav、Nginx、Apache httpd、Rclone 做量化对比。本文为认知类文档,仅做官方资料溯源,不做本地安装与运行实测;全部版本号、日期与社区数据于 2026-10-19 联网实查。

一、信息基准

1.1 查询说明

  • 查询日期:2026-10-19。
  • 信息获取方式:纯官方资料溯源(mar10/wsgidav 官方仓库 Releases 与 CHANGELOG、官方文档站),本文不做本地安装与运行实测。
  • 版本结论:本次介绍的版本为 WsgiDAV 4.3 系列,最新稳定版 v4.3.5(2026-06-27 发布)。

1.2 版本依据表

项目实查结果(2026-10-19)来源
最新稳定v4.3.5(2026-06-27)github.com/mar10/wsgidav/releases
4.3 系列时间线v4.3.3(2024-05-04)→ v4.3.4(2026-05-24)→ v4.3.5(2026-06-27)同上
代码仓库mar10/wsgidavgithub.com/mar10/wsgidav
GitHub stars1245仓库页面(2026-10-19 实查)
开源许可MIT仓库 license 字段
官方文档https://mar10.github.io/wsgidav/仓库 homepage

1.3 官方来源清单

来源地址
源码仓库https://github.com/mar10/wsgidav
Releases 页https://github.com/mar10/wsgidav/releases
官方文档站https://mar10.github.io/wsgidav/
PyPI 发布页https://pypi.org/project/wsgidav/

二、软件概述

本文介绍的是 WsgiDAV 4.3(最新稳定版 v4.3.5,2026-06-27 发布)。

WsgiDAV 是一个用 Python 实现的通用 WebDAV 服务器(RFC 4918),同时也是一个可嵌入的 WSGI 应用:它既能以自带命令行 wsgidav 独立运行,也能部署到任意 WSGI 服务器(CherryPy、Gunicorn、uWSGI 等)之上,与 Web 服务器栈复用同一套中间件体系。项目由 Martin Wendt(mar10)长期维护,以 MIT 许可开源。

在 GitHub 上 WsgiDAV 拥有 1245 stars(2026-10-19 实查)。它的定位是「Python 生态里的标准 WebDAV 组件」:文件系统之外还支持把数据库、对象存储等抽象为 WebDAV 共享(provider 扩展点),常用于文档协作、网盘类应用、Notion/Obsidian 等客户端的远程挂载后端,以及作为自研应用的嵌入式文件服务层。

三、核心架构

3.1 WSGI 应用与服务形态

WsgiDAV 核心是一个 WSGI 应用对象,独立运行时默认使用 CherryPy 内置服务器承载;生产部署可托管给任意 WSGI 容器(官方文档「Running WsgiDAV behind a WSGI server」章节)。这一形态使其可位于 Nginx/Apache 反代之后,复用 TLS 终结与压缩。

3.2 请求管线与扩展点

组件说明
provider(共享提供者)将 URI 空间映射到资源后端:文件系统(fs_provider)为默认实现,可自定义抽象后端
domain controller(域控制器)用户与口令来源:simple_dc(配置文件)、nt_dc(Windows 域)、自定义实现
中间件错误处理、日志、请求体解析、锁管理、属性管理、目录浏览(dir_browser)等 WSGI 中间件链
lock_manager / property_managerRFC 4918 的 LOCK/UNLOCK 与 DEAD 属性(PROPFIND/PROPPATCH)支持

3.3 配置驱动

行为由 YAML/JSON 配置文件(wsgidav.yaml)集中管理:host/port、共享映射(provider_mapping)、认证(simple_dc 的 user_mapping)、目录浏览、日志级别与 SSL 等均通过配置声明(官方配置文档)。

四、功能特性

4.1 标准 WebDAV 能力

实现 RFC 4918 核心方法集(GET/PUT/PROPFIND/PROPPATCH/MKCOL/COPY/MOVE/DELETE/LOCK/UNLOCK),支持 ETag、深度查询与客户端锁;配合目录浏览器提供网页端浏览界面(官方文档)。

4.2 认证与安全

支持 Basic/Digest/NTLM 认证(经由域控制器抽象),可配置 HTTPS(或交由反代终结 TLS);匿名与只读共享可通过 user_mapping 细粒度声明(官方认证文档)。

4.3 4.3 系列状态

4.3 系列处于持续维护状态:2026 年内发布 v4.3.4(2026-05-24)与 v4.3.5(2026-06-27)两个版本(官方 Releases 实查),以缺陷修复与依赖更新为主;4.x 为当前主力稳定线(官方 CHANGELOG)。

4.4 可编程扩展

作为 WSGI 应用与 Python 库,可在自研应用中内嵌 WebDAV 能力:自定义 provider 把业务对象暴露为 WebDAV 树,或自定义 domain controller 对接既有用户体系(官方文档「Custom providers」章节)。

五、快速上手

以下示例转述自官方文档站与仓库 README,本文不做本地实测。

5.1 安装

官方推荐通过 PyPI 安装:

pip install wsgidav cheroot

5.2 最小启动(官方 README 示例)

# 以匿名只读方式快速启动,服务当前目录
wsgidav --host=0.0.0.0 --port=8080 --root=/tmp --auth=anonymous

浏览器访问 http://localhost:8080/ 即可看到目录浏览页,WebDAV 客户端亦可用同一地址挂载。

5.3 配置文件方式

正式使用建议以 YAML 配置声明共享、认证与日志(官方示例结构):

host: 0.0.0.0
port: 8080
provider_mapping:
  "/": "/path/to/share"
simple_dc:
  user_mapping:
    "*": true        # 匿名;也可为 { "username": {"password": "..."} }

完整配置与部署文档见官方文档站:https://mar10.github.io/wsgidav/ 。本站亦有实测运维文档可参考:《WsgiDAV 配置参数详解》 与 《WsgiDAV Docker 与 WSGI 服务器部署指南》。

六、适用场景与限制

6.1 适用场景

  • Python 技术栈的自研系统需要内嵌 WebDAV 文件服务(provider/domain controller 可编程)。
  • 文档协作、Obsidian/Notion 类客户端远程存储、网盘后端等中小规模共享。
  • 需要将数据库、对象存储等非文件系统后端抽象为 WebDAV 树的定制场景。
  • 已有 WSGI 部署体系(Gunicorn/uWSGI/CherryPy)希望复用统一运维栈的团队。

6.2 限制与注意事项

  • 纯 Python 实现,大文件吞吐与高并发不如 Nginx/C 器实现,不适合海量文件高并发分发。
  • 生产暴露公网时务必启用 HTTPS 与强认证(默认匿名示例仅用于本地体验)。
  • 功能聚焦 WebDAV 协议本身,不提供 WebDAV 之外的文件同步、分享链接等应用层功能。
  • 4.3.5 距上一小版本约一个月,维护节奏以小步修复为主,重大新特性收敛。

七、同类选型对比

7.1 候选概览

工具定位开源许可
WsgiDAV 4.3Python WSGI WebDAV 服务/库MIT
hacdias webdav 5.17Go 单二进制 WebDAV 服务器(配置驱动)MIT
Nginx(ngx_http_dav_module)Web 服务器内置的基础 WebDAV 模块BSD-2-Clause
Apache httpd(mod_dav)Web 服务器内置的标准 WebDAV 模块Apache-2.0
Rclone(serve webdav)云存储工具内置的 WebDAV 服务端出口MIT

7.2 量化对比(2026-10-19 实查)

维度WsgiDAV 4.3.5hacdias webdav v5.17.1Nginx 1.28.3 stableApache httpd 2.4.69Rclone v1.75.2
GitHub stars1245592631914404160394
最近版本v4.3.5(2026-06-27)v5.17.1(2026-10-10)stable 1.28.3(nginx.org 当前)/ mainline 1.31.72.4.69(官方下载页)v1.75.2(2026-10-09)
版本节奏小步维护(年 2-3 版)月度级别高频小版本stable/mainline 双线按需安全/缺陷补丁约 6 周 minor + 补丁
技术栈Python(WSGI)GoCCGo
WebDAV 完整度RFC 4918 核心 + 锁 + 属性 + 目录浏览锁与规则、单二进制易部署仅 PUT/DELETE/MKCOL/COPY/MOVE,无锁/属性mod_dav + mod_dav_fs 完整基础能力只读出口为主(serve webdav)
可编程性WSGI 中间件 + 自定义 provider/域控用户/权限规则配置,改代码需 Go模块生态模块生态后端驱动复用其云存储支持

(stars 与发版时间取自各项目官方仓库页面/官网 2026-10-19 实查;许可见各自仓库 license 字段。)

7.3 选型建议

需要「WebDAV 作为库嵌入 Python 应用」或自定义非文件系统后端的,WsgiDAV 几乎是唯一开箱即用的选择;想要一个配置完即走、单二进制部署的个人/团队文件共享,选 hacdias webdav;仅需要给静态站点补充 PUT/DELETE 上传能力的,用 Nginx 自带 dav 模块(注意其不支持锁);已有 Apache 栈且需要标准 WebDAV(如与 Windows 网页文件夹/挂载兼容)可启用 mod_dav;核心诉求是把本地目录或云存储「以 WebDAV 协议对外提供」(含 S3/网盘后端),用 Rclone serve webdav 最省事。

八、参考链接