当前位置: 首页 > news >正文

另一种在ARM/x86架构处理器上部署WebDAV服务器的方法

引言

最近搞了个矿渣,处理器是国产的RK3328,四核A53架构,64位的,性能太好了,装了个OpenWRT,想用来当nas用,但是我发现,竟然没有合适的文件服务器,局域网内用SMB确实可以,但是这玩意儿不能放到公网上用,FTP又有点老,不太好用,就想着搞个WebDAV的服务器,但是网上在OpenWRT上配WebDAV要么是用lighttpd,要么是用apache,感觉都比较复杂,关键是这些框架都不是专为WebDAV服务的,只是用了他们里面的一个mod,要使用mod就需要把整个框架的基础配置完,综上,我找了半天,找了个单独的WebDAV服务器。

链接在这里:https://github.com/hacdias/webdav

这个服务器是一个用Go语言写的应用程序,并不是专为OpenWRT开发的,但是鉴于我们使用的是ARM64架构,他有编译,所以刚好可以在OpenWRT上运行,x86同理。

ARM64应用

配置文件

下面的代码请保存为config.yaml,这是服务器的配置文件。

# Server related settings
address: 0.0.0.0
port: 0
auth: true
tls: false
cert: cert.pem
key: key.pem
prefix: /
debug: false

# Default user settings (will be merged)
scope: .
modify: true
rules: []

# CORS configuration
cors:
  enabled: true
  credentials: true
  allowed_headers:
    - Depth
  allowed_hosts:
    - http://localhost:8080
  allowed_methods:
    - GET
  exposed_headers:
    - Content-Length
    - Content-Range

users:
  - username: admin
    password: admin
    scope: /a/different/path
  - username: encrypted
    password: "{bcrypt}$2y$10$zEP6oofmXFeHaeMfBNLnP.DO8m.H.Mwhd24/TOX2MWLxAExXi4qgi"
  - username: "{env}ENV_USERNAME"
    password: "{env}ENV_PASSWORD"
  - username: basic
    password: basic
    modify:   false
    rules:
      - regex: false
        allow: false
        path: /some/file
      - path: /public/access/
        modify: true

上述配置文件中,users下的usernamepassword有四组,请将下面三组删去,只留下第一组;

users下的scope表示WebDAV服务器的根目录地址,如果你插了个硬盘,这里可以填硬盘挂载点,例如\mnt\sda1

address表示服务器地址,这里保持0.0.0.0不变即可;

port表示监听端口,这里是WebDAV服务器的端口,你可以选一个你喜欢的端口,比如1234

tls表示是否使用下面certkey指定的证书,false表示不使用证书。

如何启动

完成上述配置后,你就可以启动服务器试试看了,请切换到服务器应用所在路径,将上述配置文件放在应用一起,然后运行下面的命令:

./webdav -c ./config.yaml

你会看到服务器出现了一些信息,使用你的WebDAV客户端试试看吧,用户名和密码就是上面配置文件里的usernamepassword所指定的内容。

OpenWRT添加开机启动

当然了,到了这里只是把程序打开了,如何让他随着机器一起启动呢,需要用到OpenWRT的服务机制。

使用WinSCP连接路由器后台,切换到/etc/init.d目录,在这下面新建一个名为webdav的文件,填入以下内容:

#!/bin/sh /etc/rc.common

START=99
STOP=10

USE_PROCD=1

NAME="webdav"
WEBDAV_BIN="/usr/share/webdav/webdav"
WEBDAV_CONF="/usr/share/webdav/config.yaml"
WEBDAV_LOGFILE="/tmp/webdav.log"
WEBDAV_PID="/var/run/webdav.pid"

start_service() {
	stop
	
	config_load webdav
	local webdav_enable
	config_get_bool webdav_enable webdav enabled
	if [ "$webdav_enable" -eq 1 ]; then
		nohup $WEBDAV_BIN -c $WEBDAV_CONF >$WEBDAV_LOGFILE 2>&1 & echo $! >WEBDAV_PID
	fi
}

boot() {
	if  [ -e WEBDAV_PID ]
	then
		rm WEBDAV_PID &> /dev/null
	fi
	start
}

stop_service() {
	if  [ -e WEBDAV_PID ]
	then
		kill $(cat WEBDAV_PID) &> /dev/null
		rm WEBDAV_PID &> /dev/null
	fi
}

shutdown() {
	if  [ -e WEBDAV_PID ]
	then
		rm WEBDAV_PID &> /dev/null
	fi
}

restart() {
	stop
	start
}

将上述文件权限改为0755,直接右键属性就可以改。

/etc/config目录下新建一个webdav文件,权限改为0664,填入以下内容:

config webdav 'webdav'
	option enabled '1'

上述enabled后跟的数字表示是否启动WebDAV服务器,1表示启动,0表示不启动。

最后,在/usr/share目录下新建一个文件夹webdav,确保你的应用程序名为webdav,配置文件名为config.yaml后放入该文件夹,让/usr/share/webdav目录下分别有/usr/share/webdav/webdav/usr/share/webdav/config.yaml两个文件即可。

试试看咯

在OpenWRT网页里,点系统-启动项,划到最下面,看看是不是webdav这一个启动项已经出来了,出来后,将其启用,然后点启动,在你的客户端上试试看吧。

相关文章:

  • Spring Boot使用宝兰德BES进行改造和部署
  • 分享一个你很可能不知道的Java异常实现的缺陷
  • 六 游戏基础知识和SHAPE
  • 【传输层】概述、复用分用、UDP详解、UDP校验
  • Redis基础学习
  • [附源码]Python计算机毕业设计Django学生宿舍管理系统
  • 51单片机——IO拓展(串转并)-74HC595 小白详解
  • 电力系统潮流计算(牛顿-拉夫逊法、高斯-赛德尔法、快速解耦法)(Matlab代码实现)
  • Apache服务深入学习篇(详细介绍)
  • ICV:2022年中国车载摄像头市场规模有望突破50亿美元大关
  • 适老化产品开发:用科技和智能解决老龄化难题
  • ORB-SLAM2 ---- Tracking::TrackWithMotionModel函数
  • 兄弟机床联网
  • Stable Diffusion模型阅读笔记
  • Maven插件开发
  • 【论文复现】——基于逐点前进法的点云数据精简
  • 微服务框架 SpringCloud微服务架构 22 DSL 查询语法 22.1 DSL 查询分类和基本语法
  • Fairseq代码结构
  • [安装] Doris集群搭建环境
  • 【JavaScript】——JS数组的方法(全且详细)
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉