Sign inSign up

ifoxer/webdav

By ifoxer

•Updated about 4 years ago

一个轻量级的、多用户多目录及权限的 WebDAV 服务器。

Image
0

71

ifoxer/webdav repository overview

⁠Webdav

一个轻量级的、易于使用的 WebDAV 服务器。

⁠特性

  • 基于 Golang 实现,性能高。

  • 最终编译为单二进制文件,不需要 Apache 等环境,更加稳定。

  • 支持浏览器访问。

  • 可以在同个端口下启用多个 WebDAV 服务,可挂载不同目录,各目录可多用户,且不同权限。

  • 使用config.toml文件配置用户目录及权限,非常方便

  • Docker 支持良好。

⁠快速开始

⁠可执行文件

下载最新的二进制文件及配置文件

然后运行 ./WebDAV

下载EXE程序及配置文件,然后运行WebDAV.EXE

⁠Docker
docker run -it --name webdav -d -v /root/dir1:/dav1 -v /root/dir2:/dav2  -p 80:80 --restart=unless-stopped ifoxer/webdav

其中挂载目录及端口请与config.toml配置文件保持一致

然后在浏览器中打开 http://localhost/dav1⁠ 和 http://localhost/dav2⁠,就能正常以 WebDAV 的形式 访问磁盘文件了。

⁠配置说明

Port = 9080
[[Dav]]
Prefix  = "/dav1"
PathDir = "./testdir"   #绝对地址D:\\dir1或相对地址
Auth = "auth1"

[[Dav]]
Prefix  = "/dav2"
PathDir = "./testdir2"
Auth = "auth2"

[[auth1]]
Username = "shaobt"
Password = "e10adc3949ba59abbe56e057f20f883e"  
ReadOnly = false

[[auth1]]
Username = "lisi"
Password = "e10adc3949ba59abbe56e057f20f883e"  
ReadOnly = true

[[auth2]]
Username = "zhangsan"
Password = "e10adc3949ba59abbe56e057f20f883e"
ReadOnly = true

  • Port 为服务运行要绑定的端口
  • Dav 为目录绑定配置项
  • Prefix 为虚拟目录,对应浏览器及客户端需要方面的目录
  • PathDir 为物理目录,及对应虚拟目录的文件存储目录,可使用相对地址或绝对地址,注意windows下地址为双反斜线
  • Auth 为权限配置映射项,服务器将根据该配置项后面的字符串,去寻找对应的用户及权限设置
  • auth1 auth2 非固定的名称,由目录绑定配置项中映射而来,可随意起名,只要保持与Auth项中字符串相同即可
  • Username 用户名
  • Password 密码,该密码位32位小写MD5加密字符串,防止明文直传
  • ReadOnly 是否只读,为true时,该用户仅支持浏览
⁠使用 WebDAV 的及改造的原因
  • 诸多优秀的软件允许使用私有webdav进行同步,面对多个软件同时需求时,无论是群晖还是docker都要多次建立服务器,浪费系统资源。

⁠安全性

使用 HTTP Basic Auth 进行验证,账号密码明文发送,毫无安全性可言。虽然增加了MD5,但如果涉及重要文件、重要密码,请务必用 Nginx 等网关套一层 HTTPS 。

⁠THANKS

https://github.com/dom111/webdav-js⁠ 提供了前端支持

https://github.com/117503445/GoWebDAV⁠提供了原始的代码供学习和改造

Tag summary

Content type

Image

Digest

sha256:b0427aa55…

Size

8.3 MB

Last updated

about 4 years ago

docker pull ifoxer/webdav:v2.0