在需要频繁进行文件共享和远程访问的场景下,WebDAV 协议提供了比传统 FTP 更丰富的操作功能和更好的集成性。webdav-server 作为一个基于 Go 语言开发的独立服务器实现,以单二进制文件部署、资源占用低著称,非常适合个人及企业快速搭建私有文件存储系统。
安装与启动
首先考虑运行环境。如果你熟悉 Go 工具链,可以直接编译安装最新版本:
go install github.com/hacdias/webdav/v5@latest
对于追求稳定或希望隔离环境的场景,Docker 是更稳妥的选择。拉取镜像后,通过容器化方式运行:
docker pull ghcr.io/hacdias/webdav:latest
配置文件详解
服务启动的核心在于 config.yml。这个 YAML 文件定义了监听地址、端口、数据目录以及用户权限。注意密码字段建议使用加密后的哈希值,避免明文存储。
address: 0.0.0.0
port: 6060
directory: /data
users:
- username: admin
password: "{bcrypt}$2y$10$zEP6oofmXFeHaeMfBNLnP.DO8m.H.Mwhd24/TOX2MWLxAExXi4qgi"
permissions: CRUD
启动时只需指定配置文件路径即可:
webdav --config config.yml
若使用 Docker,需将宿主机配置文件挂载到容器内:
docker run -p 6060:6060 -v $(pwd)/config.yml:/config.yml -v $(pwd)/data:/data ghcr.io/hacdias/webdav -c /config.yml
权限管理与场景实践
在实际业务中,不同角色对文件的读写需求差异很大。我们可以通过配置实现分层权限管理。例如,管理员拥有完全控制权(CRUD),开发人员仅能读取特定目录,访客只能查看公开文档。
port: 8080
directory: /team-docs
users:
- username: manager
password: "{env}MANAGER_PASSWORD"
permissions: CRUD

