首页 » Linux » CentOS » 基于go语言开源项目创建WebDAV服务

基于go语言开源项目创建WebDAV服务

 

WebDAV是超文本传输协议(HTTP)的扩展,它允许用户像管理本地文件一样直接编辑和管理远程服务器上的文件。

本文使用开源项目https://github.com/hacdias/webdav来实现WebDAV,基于RockyLinux8.x系统环境,所以我这里下载对应的linux-amd64-webdav.tar.gz包。

1、下载WebDAV

注:由于GitHub偶尔会出现连接问题,如遇网络问题,自行想办法下载。

2、解压缩并移动二进制文件

3、创建webdav目录

4、创建配置文件

注1:网上绝大部分文章所提供出来的config.yml都没有写入权限,配置完成启动webdav后仅能只读,这是因为permissions参数配置为R(只读)导致,详见上方参数注释。

注2:权限生效规则:
①如果用户有自己的权限规则,则完全忽略全局规则,仅使用用户自己的规则。
②如果用户没有定义规则,则继承全局的配置。

注3:更多配置参数,请参考webdav github。

5、配置启动服务

6、启动服务

7、验证

我这里提供两种验证方式,Linux和Windows。

对于Windows客户端验证比较容易,可以直接通过驱动器映射,也可以通过WinSCP等其他软件来实现,我这里使用winscp软件验证,驱动器挂载参见https://blog.whsir.com/post-8072.html。

下载并运行WinSCP软件,新建会话,选择WebDAV文件协议,配置相关的地址、端口、账号密码等即可,保存连接后,即可看到我们前面配置的/data/webdav目录内容。

对于Linux来说,我这里通过davfs2软件,实现远程mount挂载。

执行mount挂载命令

执行后输入webdav账号密码即可完成挂载。

8、nginx反向代理webdav(可选)

为了增加安全性,我们可以通过nginx配置TLS代理一层webdav,首选需要调整webdav参数,将address配置为127.0.0.1,behindProxy为true。

我这里以nginx1.28.0版本为例,conf配置如下,你仅需要更改对应的域名、域名证书即可,我这里仅作演示示例,你也可以结合自身需求调整对应参数,此处不再过多说明。

 

原文链接:基于go语言开源项目创建WebDAV服务,转载请注明来源!

0