Seafile学习与WebDAV和Restful API对比

微笑、不失礼 提交于 2020-02-25 00:48:01

说到想写这篇博客

这几天来,因为疫情在家
闲来无事在网上了解了了几款开源私有网盘的应用,比如nextcloud和seafile

在实际部署的过程中发现nextcloud虽然界面美观,但是整体是由php开发的,而且文档还是英文,不对我胃口(我在网上找开源网盘也是想自己动手开发出一需要云存储数据的应用,不过本人以vue+spring开发为主,php啃不动撒)

对比nextcloud,seafile是由国人团队开发,还提供相对nextcloud更为全面的API接口。

seafile API文档地址

说回重点

小生在seafile的文档中看到了两个比较陌生的词WebDAV和FUSE,后者是一种虚拟的文件系统技术,可以在文件系统上挂载一个虚拟目录。如果结合一些Web API可实现将云服务器磁盘(或者说网盘应用)挂载到本地,嘿嘿,就我而言很方便我挂载数据到多个服务器上,运行一些不方便拓展的工具,如fsl,FreeSurfer,MATLAB等,不用反复下载删除,这可是极好的。

但就如何开发而言,很遗憾小生了解不多,但找到了别人代码直接用,代码也比较简洁便于学习,在此上Github

这次是真的重点

关于WebDAV这个名词,我百度后给出的答案要么是啥啥啥基于WebDAV的服务广告啊,要么是这个解释百度百科

WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。

但对我来说完全骚不到痒处啊!
概括了一下WebDAV是啥子但是没说WebDAV咋用啊

  • 是和WebSocket,HTTPS一样有自己的协议头吗?
  • 还是有什么特殊操作?

找啊找,找了一圈发现了这个
原来WebDAV是和Restful API差不多,是种基于Http的协议的API规范

在这记录一下

用于文档管理的WEBDEV方法(RFC2518)

webdav方法也是http方法,只不过为了处理文档协作,专门制作的规范。也可以用于Restful API设计的。

PROPFIND:从Web资源中检索以XML格式存储的属性。它也被重载,以允许一个检索远程系统的集合结构(也叫目录层次结构)
PROPPATCH:在单个原子性动作中更改和删除资源的多个属性
MKCOL:创建集合或者目录
COPY:将资源从一个URI复制到另外一个URI
MOVE:将资源从一个URI移动到另外一个URI
LOCK:锁定一个资源。WebDAV支持共享锁和互斥锁
UNLOCK:解除资源的锁定

而Restful则是

GET、POST、PUT、PATCH、DELETE、OPTIONS、HEAD、TRACE

先写到这,想到什么再加

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!