Centos7中搭建WebDav的服务

一 什么是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

下载并解压指定目录

cd /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

mkdir -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服务

cat << 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

查看服务状态

# 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

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/7577

(0)
郭靖的头像郭靖
上一篇 2023年3月9日 下午4:26
下一篇 2023年3月10日 下午4:44

相关推荐

  • Expect解决shell脚本的交互需求

    在linux系统中,shell脚本可以大大提高我们的工作效率。但遇到需要交互的场景时,shell脚本却无法解决。 简介 Expect语言是基于Tcl的。Tcl实际上是一个子程序库,这些子程序库可以嵌入到程序里从而提供语言服务。 最终的语言有点象一个典型的 Shell语言。里面有给变量赋值的set命令,控制程序执行的if,for,continue等命令,还能进…

    2022年11月15日
    97700
  • ansible 用普通用户sudo 执行命令

    背景: linux 机器都禁止root用户远程直接登录,需要ansible切换用户来实现 配置 /etc/ansible/hosts [test] 192.168.55.65 ansible_ssh_user=vmuser ansible_ssh_pass=’112233′ ansible_become_pass=’778899′ 192.168.55.66…

    Linux系统 2023年2月6日
    1.1K00
  • MySQL 用户管理和权限管理

    在项目中,一个数据库有很多人需要使用,不能所有的人都使用相同的权限,如果人比较多,一人一个用户也很难管理。一般来说,会分超级管理员权限,管理员权限,读写权限,只读权限等,这样方便管理。当然,具体怎么管理权限根据实际情况来确定。无论如何,都需要创建多个用户来管理权限。root 是数据库的超级管理员用户,对于普通开发人员来说,权限太大了,如果不小心做了一些不可逆…

    2022年6月9日
    1.3K00
  • linux中为cp和mv命令添加进度条

    安装高级复制补丁以在 Linux 中向 cp 和 mv 命令添加进度条 cp 和 mv 命令是GNU coreutils. 所以你需要GNU coreutils从这里下载最新的。 现在两个新的补丁的二进制文件即cp与mv将在中创建coreutils-9.0/src的文件夹。只需将它们复制到你的 $PATH 中,如下所示: 该cpg和mvg命令有现在进度条的功…

    2023年6月16日
    84200
  • CentOS 7 磁盘挂载教程

    mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件 进行挂载操作后,用户便可以在挂载目录中使用硬盘资源了。默认情况下Linux系统并不会像Windows系统那样自动的挂载光盘和U盘设备,需要自行完成。 语法 语法格式:mount [参数] [设备] [挂载点] 常用参数 -t 指定文件系统,即挂载类型 -l 显示已加载的文件系统列表 -h …

    2022年6月9日
    2.7K10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信