这里停止更新,请访问github

webdavgo

一个轻量高性能简单可靠的webdav + httpFileSever(静态文件浏览服务) 的 实现

使用go 1.19 开发 区区不到百行代码

全平台兼容

x86下windowsxpSp3 32 windows11 docker_Centos7 macOS 13 Ventura 测试通过

arm下 OpenWrt 测试通过

理论上也支持 MIPS和RISC-V 架构cpu,自己编译就好

可执行文件7M左右 占用内存10M左右

webdav可以加密码认证

静态文件功能 可以直接浏览器浏览下载文件

两者可以不同目录,webdav 和 静态文件服务 都可以单独关闭

更新日志

v1.1 2002-9-24 11:11

新增 webdav 单独关闭 功能,可以单独做为webdav或者httpFileSever(静态文件浏览服务)使用 修复 配置文件中并不影响使用的一处拼写错误

使用方法

chmod +x webdav./webdav

启动后会提示用户密码 和访问地址

可以无配置文件启动

默认配置文件

关于Windows直接挂载的问题

有密码的情况下,windows直接挂载有问题

部分版本windows挂载容量剩余显示和C盘一样,这是windows的问题

可以使用raidrive 挂载

linux 和macos挂载

推荐 davfs2

ios挂载 或 安卓挂载

推荐使用es文件管理器

测试过的一些app(IOS): nPlayer fileball

浏览器提示 Method Not Allowed

请使用专业的webdav工具打开

浏览器只读模式直接访问请访问 http://YourHostAddress:18123/list/

配置文件说明

server_port

端口号 webdav 和 httpFileServer 公用一个端口 端口请尽量用高位端口防止冲突

webdav_user_name

webdav用户名,用户名为空的时候 webdav 无密码

webdav_user_psw

webdav 用户密码

webdav_file_path

webdav 服务对应的文件地址 支持相对目录和绝对目录,win下注意转义 例如

list_server_path

list_file_path

文件服务 对应的物理地址,路径格式和webdav_file_path相同

无配置文件也可以启动

启动后 无用户密码,端口118123 路径 是可执行文件所在路径

文件路径和权限说明

支持软连接 对应路径需要有执行程序的用户的读写权限

服务器路径

可以自定义后缀,也是为了防止被扫描

端口说明

默认使用18123端口,可以自行修改。请确保无冲突 程序并不会处理端口冲突问题,否则程序会直接退出 无法启动

关于ssl

没有计划支持,因为免费ssl续签麻烦不打算用golang来搞,自己用nginx Caddy之类的套就好。 服务器管理软件也很多,也很多支持自动续期的 密码验证功能也建议关闭,转由nginx处理

其他问题

list_file_path 修改无效

浏览器缓存问题,清理缓存就ok

生产环境使用

还是要套ssl。不套ssl 就接近裸奔

密码验证也尽量交给前端反代服务器来做。

自带的webdav密码功能,只能说应急用。

关于权限问题,你用什么用户运行,那么webdav 和httpFileSever就是什么权限。要方便就直接root/administrator ,要安全就低权限用户。

自己编译

go get golang.org/x/net/webdav

其他参考即可 很简单 build.bat

用途

一开始为了解决 docker里面的关键性目录映射,而不想使用-v挂载。以及一直想做一个简单网盘。

突然想到最符合我需求的还是golang

也用烦了群晖和unraid,加上我可怜的路由器 仅剩下8M flash,所以就搞起来这个。

当然也可以做私有盘使用,支持webdav协议的同步客户端 一大堆。什么自动备份之类的都不是问题。

所以后续 会继续更新下去。但是功能不会太繁琐,会一直本着 文件共享同步 和 分享的路线 轻量稳定的 路线发展。