appstore/apps/gowebdav
2024-12-12 21:27:56 +08:00
..
latest feat:格式化yaml文件 2024-12-12 21:27:56 +08:00
data.yml feat:格式化yaml文件 2024-12-12 21:27:56 +08:00
logo.png feat:添加gowebdav到列表 2024-05-26 22:54:02 +08:00
README.md feat:添加gowebdav到列表 2024-05-26 22:54:02 +08:00

GoWebDAV

使用 WebDAV 分享本地文件,轻量、易于使用

English | 简体中文

特性

  • 基于 Golang 实现,性能高。

  • 最终编译为单二进制文件,不需要 Apache 等环境,依赖少。

  • 支持浏览器访问。

  • 可以在同个端口下启用多个 WebDAV 服务,各自有不同的挂载目录、用户名密码。

  • 良好的 Docker 支持。

安全

GoWebDAV 使用 HTTP Basic Auth 进行验证,账号密码未经加密,毫无安全性可言。如果涉及重要文件、重要密码,请务必用 Nginx 或 Traefik 等代理服务器套一层 HTTPS。

GoWebDAV 目前没有直接支持 HTTPS 的计划,因为我认为 HTTPS 涉及域名、证书定期申请,这些工作都应当在上层代理服务器中完成。

使用

./gowebdav --help # 查看帮助

./gowebdav --addr 127.0.0.1 # 在 127.0.0.1 监听,默认监听 0.0.0.0
./gowebdav --port 8080 # 在 8080 端口监听,默认监听 80 端口

./gowebdav --dav "/dir1,/data/dir1,user1,pass1,true" # 配置文件夹路径及属性

dav 参数可以指定 WebDAV 服务的本地路径、用户验证、是否只读等属性。

每个本地路径都可以配置一个 WebDAV 服务,使用分号分隔。例子:

  • "/dir1,/data/dir1,user1,pass1,true;/dir2,/data/dir2,null,null,false" 描述了 2 个服务,分别是将文件夹 /data/dir1 映射至 WebDAV 服务 /dir1,将文件夹 /data/dir2 映射至 WebDAV 服务 /dir2

对于每个服务,需要使用逗号分隔 5 个参数,分别是 服务路径,本地路径,用户名,密码,是否只读。其中用户名和密码都为 null 时表示不需要验证。例子:

  • "/dir1,/data/dir1,user1,pass1,true" 描述了将 /data/dir1 映射至 /dir1 服务,访问需要的用户名和密码分别为 user1pass1,只读(禁止上传、更新、删除)。
  • "/dir2,/data/dir2,null,null,false" 描述了将 /data/dir2 映射至 /dir2 服务,访问不需要验证,可读写。
  • "/dir3,/data/dir3,null,null,true" 描述了将 /data/dir3 映射至 /dir3 服务,访问不需要验证,只读。

特别的,如果只有 1 个服务且名为 /,则可以直接访问 http://localhost:80 而不需要指定服务名。例子:

  • "/,/data/dir1,user1,pass1,true" 描述了将 /data/dir1 映射至 / 服务,访问需要的用户名和密码分别为 user1pass1,只读。

dav 未指定时GoWebDAV 默认使用的 dav 参数为 /public-writable,./data/public-writable,null,null,false;/public-readonly,./data/public-readonly,null,null,true;/private-writable,./data/private-writable,user1,pass1,false