为什么要在seafile搞webdav
Seafile 一直是一款可靠的文件同步web应用,经过个人测试,同一台机器上,seafile在传输文件时的速度比nextcloud要快(可能也与php的设置有关系),这是seafile的优势。但是,seafile在做架构时,将传进来的文件进行了分块处理,并将信息写入数据库,所以在硬盘上,你无法直接访问自己上传的文件,这可有点不方便。要解决该问题,其中一个方法是开启seafile的webdav,然后在系统中挂载该webdav,于是就可以像访问自己硬盘一样访问seafile中的文件。
西蒙宫已经部署了一台CPU是J3455的NAS并进行了相关折腾具体可看:
西蒙宫:折腾,使用NAS的openmediavault系统配置seafile pro版zhuanlan.zhihu.com西蒙宫:让家庭NAS走向世界,兼谈Zerotierzhuanlan.zhihu.com西蒙宫:折腾,用J3455搭建家庭naszhuanlan.zhihu.comseafile开启webdav的方法
这方法在官网相关链接已经给了很多解释,这里仅是简单记录一下。
编辑/data/haiwen/conf/seafdav.conf
添加如下内容
[WEBDAV]# Default is false. Change it to true to enable SeafDAV server.
enabled = trueport = 8080# Change the value of fastcgi to true if fastcgi is to be used
fastcgi = false# If you deploy seafdav behind nginx/apache, you need to modify "share_name".
share_name = /
然后重启seafile服务
./seafile.sh restart
linux系统挂载webdav的方法
比较直接的方法是使用mount命令,新建一个名为seafdav的文件夹
mount -t davfs http://127.0.0.1:8080/ /mnt/seafdav
挂载webdav后的读写性能测试
挂载webdav目录的写性能
root@localhost:/mnt/seafdav# dd if=/dev/zero bs=1024 count=1000000 of=1Gb.file
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB, 977 MiB) copied, 35.0303 s, 29.2 MB/s
挂载webdav目录的读性能
root@localhost:/mnt/seafdav# dd of=1Gb.file if=/dev/zero bs=1024 count=1000000
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB, 977 MiB) copied, 35.0889 s, 29.2 MB/s
普通硬盘的写性能
root@localhost:/mnt/raid# dd if=/dev/zero bs=1024 count=1000000 of=1Gb.file
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB, 977 MiB) copied, 6.21764 s, 165 MB/s
普通硬盘的读性能
root@localhost:/mnt/raid# dd of=1Gb.file if=/dev/zero bs=1024 count=1000000
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB, 977 MiB) copied, 13.546 s, 75.6 MB/s
结论
由以上数据可以看到,seafile所部署的webdav的读写性能确实差了一些,毕竟多了一些抽象,并且依赖cpu的处理速度,该NAS配置是J3455的CPU+8G内存,主打省电,但性能并不强。普通硬盘直接读写的速度是webdav的三倍左右。所以把webdav挂载为硬盘之后,只能进行一些硬盘负载较轻的工作。