Total Pageviews

Saturday 13 January 2018

通过安装davfs2来挂载webdav网盘

什么是webdav,是一组基于超文本传输协议的技术集合,有利于用户间协同编辑和管理存储在万维网服务器文档。国外的很多网盘,包括owncloud都支持webdav,本文以yandex为例子介绍,挂载在Linux上。

Linux
  • davfs2或者fusedavWebDAV共享挂载成Coda或者FUSE文件系统。
  • KDEWebDAV作为kio_http的一部分提供原生支持。DolphinKonqueror等其他KDE应用程序可以直接与WebDAV服务器交互。
  • Nautilus也提供内置支持。
  • cadaver命令行工具提供类FTP命令集,也包含在很多Linux发行版中。
  • Apache HTTP服务 提供基于davfsApache SubversionWebDAV模块。
Windows
  • NetDrive:挂载为网络硬盘机
Mac
  • Finder:系统内置程式
本文就是利用davfs2挂载wendav

安装

Linux主要的源中都有davfs2,也可以自己编译,需要准备好环境。
apt-get install davfs2
mkdir /mnt/webdav
mount -t davfs https://webdav.yandex.ru /mnt/webdav
Please enter the username to authenticate with server
https://webdav.yandex.ru or hit enter for none.
  Username: test
Please enter the password to authenticate user test with server
https://webdav.yandex.ru or hit enter for none.
  Password:

配置

可以把账号密码写入配置文件,以普通用户来挂载。
usermod -a -G network username
编辑/etc/fstab文件,在后面添加(username自己替换):
https://webdav.example.com /home/username/webdav davfs user,noauto,uid=username,file_mode=600,dir_mode=700 0 1
创建账号密码配置:
mkdir ~/.davfs2/
echo "https://webdav.example.com webdavuser webdavpassword" >> ~/.davfs2/secrets 
chmod 0600 ~/.davfs2/secrets
yandex url是:
https://webdav.yandex.ru
如果是owncloud, url是:
https://webdav.example.com/remote.php/webdav
多用户配置
/home/username/disk1 webdavuser1 "webdavpassword1"
/home/username/disk2 webdavuser1 "webdavpassword2"
.........
/home/username/diskN webdavuserN "webdavpasswordN"
Now you should be able to mount and unmount ~/webdav:
mount ~/webdav
取消挂载
fusermount -u ~/webdav

错误

如果在复制剪切文件遇到错误,编辑/etc/davfs2/davfs2.conf,修改配置如下,
[...]
use_locks 0
[...]

参考

相关帖子:
http://briteming.blogspot.de/2017/08/centosdavfs2dropbox.html
http://briteming.blogspot.de/2017/09/davfsyandex-disk.html
-----------------------

如何在各个平台下挂载WebDAV

WebDAV

这是什么?有什么用?

https://zh.wikipedia.org/wiki/WebDAV

Linux

Centos & Fedora & RedHat
yum -y install davfs2
其他的比如Ubuntu之类的
apt-get -y install davfs2
安装完davfs2之后执行
sed -i 's/# use_locks 1/use_locks 0/g' /etc/davfs2/davfs2.conf echo "你的WebDAV地址 用户名 密码" >> /etc/davfs2/secrets #保存用户名密码,以后可以直接免密码挂载 mount.davfs 你的WebDAV地址 你想要挂载到的目录
即可成功挂载
注意1:挂载目录必须提前创建好!
注意2:如果你不执行第二句保存用户名密码,那么你以后挂载的时候都会要求输入用户名密码!

开机自动挂载

如果想要开机自动挂载,则再执行
echo "mount.davfs 你的WebDAV地址 你想要挂载到的目录" >> /etc/rc.local
执行完此句之后检查一下/etc/rc.local文件,看看是否有exit 0这句。如果有的话,要手动把上面命令添加进去的语句放到exit 0之前。

Windows

Windows 资源管理器挂载只能挂载 HTTPS 的 WebDAV。如果想挂载 HTTP 的,貌似需要动点手脚,或者使用第三方软件(见下方)。
  1. 直接打开“我的电脑”,右击-添加一个网络位置。
  2. 一路“下一步”,然后在这个框内填入你的WebDAV地址,这里以TeraCLOUD为例.

    3.继续下一步,然后等待,会弹出一个登录框让你输入用户名密码,即为你账户的用户名密码。输入网络位置名称,其实就是取个名字,请随意,然后一路“下一步”,完工,现在你应该可以在我的电脑里看到你挂载的WebDAV了。

    MacOS

    在 Finder 中连接到服务器,操作与Windows大同小异,由于我没有Mac所以就不讲了,此处直接给出苹果官方文档。
    http://support.apple.com/kb/PH3857

    第三方软件

    实际上比较推荐使用第三方软件,特别是Windows,资源管理器总有一点科学无法解释的BUG,使用体验不是很好。
    程序名适用平台许可注释
    RaiDriveWindows免费还支持谷歌、OneDrive等网盘
    CyberduckWindows/MacOS免费
    WebDriveWindows/MacOS免费试用10天
    NetDriveWindows个人免费使用
    IT Hit "Map Drive"Windows商业使用
    GoodSyncWindows/MacOS/Android/iOS免费/专业版适用于双向文件夹同步
    WebDAV NavigatoriOS免费
    WebDAV-Sync任意平台(Java) 开源适用于双向文件夹同步的命令行工具
    DAVbox任意平台(Java)商业使用适用于双向文件夹同步