一 什么是WebDAV
百度百科的定义:WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。
顾名思义,WebDAV主要就是用来做文档的存储的。
二 使用背景
因为为了方便手写笔记,在apple应用市场花了60RMB刚购买了
Notability
,虽然该应用支持iCloud存储,但是由于个人的iCloud存储基本都已经满了,担心后面ipad出问题,所有笔记都会丢失。
虽然,Notability
还支持一些其他存储,如GoogleDriver,但是几乎都是国内无法访问的,然后看到有WebDAV选项,即把自己的东西存到服务器上,所以就到github找了一下,果然找到一个golang版本的WebDAV server。
三 部署流程
项目在Github上的地址:https://github.com/hacdias/webdav
服务器操作系统:Centos7
下载并解压指定目录1
2
3
4cd /usr/local/webdav
wget https://github.com/hacdias/webdav/releases/download/v4.0.0/linux-amd64-webdav.tar.gz
tar -xvzf linux-amd64-webdav.tar.gz
rm -rf linux-amd64-webdav.tar.gz
在webdav同级目录下增加config.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21mkdir -p /data/webdav
cat << EOF > /user/local/webdav/config.yaml
# Server related settings
address: 0.0.0.0
port: 51234
auth: true
tls: false
cert: cert.pem
key: key.pem
# Default user settings (will be merged)
scope: .
modify: true
rules: []
users:
- username: admin
password: admin
scope: /data/webdav
EOF
增加systemd
服务1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18cat << EOF > /usr/lib/systemd/system/webdav.service
[Unit]
Description=WebDAV server
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/webdav/webdav --config /usr/local/webdav/config.yaml
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable webdav
systemctl start webdav
查看服务状态1
2
3
4
5
6
7# systemctl status webdav
● webdav.service - WebDAV server
Loaded: loaded (/usr/lib/systemd/system/webdav.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2021-04-29 17:34:08 CST; 20h ago
Main PID: 10032 (webdav)
CGroup: /system.slice/webdav.service
└─10032 /usr/local/webdav/webdav --config /usr/local/webdav/config.yaml
至此,webdav服务已经部署完成。