Linux文件共享服务之webdav服务器
文件共享是我长期使用的服务,一来是因为原来在办公室工作 ,需要随时调阅电脑上的文件查看;二来是所有的资料随时需要存取,查看。
webdav是一个不错的选择,特别是在Linux电脑上,能更好的做好文件共享,现在将需要浏览的文件放服务器上,想看的时候就可以随时调阅。
一、WebDav介绍
WebDAV 基于 HTTP 协议的通信协议,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。
二、WebDav
项目地址:https://github.com/hacdias/webdav
下载对应的版本(也有windows版本、各类服务器系统等):
https://github.com/hacdias/webdav/releases/
1、下载安装
解压、进入目录:
1 | wget https://github.com/hacdias/webdav/releases/download/v4.2.0/linux-amd64-webdav.tar.gz |
运行方式:
1 | ./webdav -config config.yaml #config.yaml是配置文件 |
config.yaml配置文件:
1 | # Server related settings |
以上配置原文复制后不能启动:将注释删除,第二、三、四用户删除后可启动。
2、服务自启
可通过systemd 服务开启自启动:
webdav.service:(/etc/systemd/system/webdav.service 或者:/lib/systemd/system/webdav.service)
1 | [Unit] |
服务管理:
1 | sudo systemctl start webdav |
3、nginx 反向代理:
1 | location / { |
三、webdavSmump
1、系统特点
安装简单,如果以https方式运行就一个可执行文件、一个配置文件,一个公钥文件、一个私钥文件;如果是以http方式运行只需要前两个文件就可以正常运行。
支持多用户登录,不同的用户访问不同的服务器文件夹
加密通讯
方便互联网和内部访问
可运行在windows、linux、树莓派、macos等几乎所有操作系统下(只要golang支持的操作系统都可以运行)
性能较好,文件传输输快,可同时传输多个文件。
在webdav中用户名(username),访问路径(URL),服务器上的文件路径(userpath)是一个多对多对多的关系,实现起来比较复杂。本项目暂把这个关系简化成了一对一对一的关系。
2、配置文件
config.json:
1 | { |
- serviceport:服务端口
- cakey:私钥证书存取路径(如无需证书则可删除)
- cacrt:公钥证书存取路径(如无需证书则可删除)
- prefixdir:服务器端共享文件夹的前缀,和userpath合起来组成共享给某个用户的文件夹在服务器上的绝对路径
- users:用户集合,每一行对应一个用户描述,分别是用户名、用户口令(可以是明文也可以放置经md5哈稀后的口令)、服务器上分配给用户的共享文件夹名
- webdav的存取路径名和用户名一致(即webdav的访问路径是形如https://xx.xx.xx.xx:8899/username) ,配置文件不再体现。
3、安装过程
- 下载并编译主程序文件
- 把配置文件config.json和主程序文件放入同一文件夹中
- 在同一目录内放置供https通讯使用的公钥文件和私钥文件(没公钥文件和私钥文件也没关系,系统会转为http方式运行)
- 按实际情况编辑好配置文件config.json并保存
- 运行主程序文件
- 用任一webdav客户端软件访问本服务程序(直接用浏览器访问会返回”Method Not Allowed”,另外windows下的”添加一个网络位置”功能也不能正常访问)
四、连接和访问
1、手机端访问
1、访问文件用ES文件浏览器,FTP 栏内有webdav选项,可新建访问
2、QuickEdit可直接访问webdav内的文件并编和保存
这两个工具是webdav的绝佳伴侣
2、手机端的应用
1、各类软件的webdav备份可用,如:开源阅读、M 浏览器、Tita搜索等软件的备份恢复,在自己建的服务器内,安全又放心。
2、自己的Keedroid密码管理软件的存储和使用
3、Windows端访问:
挂载:使用 Windows 的映射网络硬盘来通过 WebDAV 访问文件
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com