Loading... # 让 OneDrive 实现 WebDAV 服务 > 姊妹篇:[自建阿里云盘 WebDAV 功能并搬运资源](https://www.chirmyram.top/archives/aliyunwebdav)本文梳理一下已发现的几种工具实现 OneDrive(for business)的 WebDAV 服务,`for business` 也就是商业版 OneDrive。15G 的个人 OneDrive 账户利用能力有限且兼容性较差所以这里不作讨论,个人版挂载教程见 [2020 年 onedrive 怎么配置 webdav?](https://www.zhihu.com/question/388430389)。以下很多操作都有烂大街的教程,我在这里只是抛砖引玉综合整理一下,提供更多的思路。 1.1 实现方式展开目录 ### 1.2.1 [rclone](https://rclone.org/) 展开目录 rclone 是一个支持多种云储存平台、国外云盘、储存协议的命令行工具,兼容 OneDrive 独特的 WebDAV 功能。挂载时使用 WebDAV 方式挂载,输入自己的 WebDAV 链接,选择链接类型为 sharepoint,填写 office365 的账密,详细挂载教程可参考[使用 rclone 转存别人分享的 onedrive 分享链接](https://weinb.top/index.php/archives/131/)。两个网盘对拷不会占用本地储存空间,当然流量还是烧的自己的,而且是双倍流量,不过部分 VPS 商家不会计算进入 VPS 的入网流量。 在其他资源账户中,赋予域内另一空白账户对其资源文件夹的**只可查看权限**,即**只读权限**,使用 [rclone](https://rclone.org/) 配置该空白账户及资源文件夹链接,自动加密账户密码,既可共享出来以供他人批量搬运资源,又能:限制操作权限、避免泄露密码、避免没有创建 API 权限的尴尬、不必担心 refresh token 过期。 ### 1.2.2 davfs2 展开目录 davfs2 是 Linux 端的 WebDAV 挂载软件,也恰好支持挂载 OneDrive 的 WebDAV 链接。挂载教程参考:[以 WebDav 方式挂载 OneDrive](https://www.pianshen.com/article/6363174521/)、[Linux/VPS 使用 davfs2 挂载 webdav 网盘](https://www.moewah.com/archives/2379.html)。 ### 1.2.3 Windows 资源管理器展开目录 这是微软自己最原始的支持方式,但还是无法直接访问 WebDAV 链接。使用资源管理器间接访问 WebDAV 链接,需要使用 IE 浏览器或兼容 IE 的浏览器,没错还要用到这种上古技术,比如 Edge 浏览器的 IE 模式、国内浏览器的兼容模式。登陆 OneDrive 后点击右上角切换视图,就会多出一个在文件资源管理器中进行查看选项,点击就会弹窗跳转到资源管理器中查看文件,访问一次后再次在资源管理器地址栏中粘贴 WebDAV 链接也可访问,不过清理缓存或重启电脑后会失效,又要从浏览器访问。  利用第三方工具实现 WebDAV 服务。 2.1 [Koofr](https://k00.fr/lwvfv88q) 展开目录 --- 本身是一家网盘服务商,默认 2G 空间,可以通过拉人头扩容至 8G,当然也可以挂载其他网盘直接扩容。稍微调查了一下,官方在推特的账户发推多年,rclone 挂载选项中也有 Koofr(rclone 作为久负盛名的云储存管理工具,不会支持不稳定的接口),不是突然冒出来的野鸡商家。每日限制上传流量 1G,适合同步文档、配置等数据。如果跟坚果云对比的话,除了连接速度较慢,其他方面都是远超。限制挂载 10 个 OneDrive 账户,也支持在挂载的网盘间转移小文件。 注册登陆后,在左侧栏 Connect 选项中点击 OneDrive 图标进行挂载。挂载完毕后点击右上角头像,选择 Places,即可对已挂载的网盘进行重命名、解绑操作。点击顶栏 Preferences→Password→App passwords,生成 WebDAV 密码。WebDAV 链接为 `https://app.koofr.net/dav`,账号为 Koofr 网盘账号邮箱,密码为上述步骤生成的密码。  2.2 [Cloudreve](https://github.com/cloudreve/Cloudreve) 展开目录 --- 需要自行搭建,经典套娃盘。这是一个网盘程序而不是网页目录程序,具有作为网盘的基本功能,当然也可强行当目录程序,比如建立一个文件夹然后分享出去。读取 OneDrive 文件路径映射到 Cloudreve 的数据,每次操作文件都是读取自己的数据库来实现变动,所以必须经过它来操作 OneDrive 文件,否则在 OneDrive 里面单方面操作后不会同步至它的数据库,再在它里面操作会失败,除非手动修改数据库。 搭建好之后在 WebDAV 管理页面生成 WebDAV 密码,在支持挂载 WebDAV 的软件中使用此密码和网盘账户登陆,WebDAV 链接为`首页链接/dav`。 2.3 [sharelist](https://github.com/reruin/sharelist/tree/0.1)、[alist](https://github.com/Xhofe/alist) 展开目录 --- 需要自行搭建。这俩本身为目录列表程序,初始作用是将文件公开展示在网页上,附带挂载 OneDrive 后转化为 WebDAV 服务,需要自行搭建。 这里列出的 [sharelist](https://github.com/reruin/sharelist/tree/0.1) 是旧版 0.1 版本,非最新版,通过 WebDAV 访问文件为只读权限,即无法修改只可查看。0.1 版存在较多致命 bug。如挂载账户超过 1 个所有账户的路径都会指向同一个,使用 WebDAV 播放视频时间一长就会导致整个网站变为所播放视频视频的直链,相当令人头痛,曾尝试搭建分站来解决问题,但同时运行多个进程也很不方便,迫于是当时发现唯一支持挂载网盘为 WebDAV 只读功能的程序,就一直用着,憋得慌。而新版目前仍在开发中,bug 还是巨多,文档也不完善。在后台设置 WebDAV 路径,WebDAV 链接为`首页链接/路径`,0.1 版无 WebDAV 账密。 而 [alist](https://github.com/Xhofe/alist) 则稳定许多,同时稳定挂载多个盘,通过 WebDAV 访问文件拥有完整的读写权限,WebDAV 访客账号拥有只读权限,适合公开分享。WebDAV 链接为`首页链接/dav`,账密在后台设置。 2.4 [rclone](https://rclone.org/) 展开目录 --- ### 2.4.1 rclone 本身展开目录 rclone 不仅可以挂载第三方的 WebDAV 服务,还可以自己搭建 WebDAV 服务器(不仅可以搭建 WebdAV,还可以搭建更多服务:dlna、docker、ftp、http、restic、sftp,见[官方文档](https://rclone.org/commands/rclone_serve/))。用 rclone 挂载 OneDrive,我这里的 OneDrive 配置名为 `wd`,要挂载配置项的根目录为 WebDAV 服务,则 rclone 启动命令为: copy ``` rclone serve webdav --addr 0.0.0.0:端口 wd:/ --user 用户名 --pass 密码 ``` 中文部分自行替换更改。如果要挂载服务器本地路径,直接替换 `wd:/` 即可,如本地 root 文件夹则改为 `/root`。现在就可以使用支持 WebDAV 的软件访问 WebDAV 链接:`http://ip:端口`,也可以弄个 nginx 反代、挂上 ssl 证书。 浏览器本身并不支持 WebDAV 协议,除非相关项目本身专门适配 WebDAV 的前端,否则浏览器无法打开 WebDAV 链接。不过 rclone 的 WebDAV 服务是有前端页面的,可以直接在浏览器中登陆链接查看文件。 ### 2.4.2 rclone 套娃展开目录 利用 rclone 套娃也能曲线救援实现 WebDAV,rclone 可以将配置好的网盘挂载至本地磁盘,像是在本地那样读写文件(当然不能执行文件),这适用于那些不支持挂载 OneDrive 但支持挂载本地路径为 WebDAV 的网盘目录程序。诸如 Nextcloud、Owncloud、Seafile、kodbox…… 数不胜数。显然挂载后操作文件会消耗双倍流量,每次操作后都是自动下载后修改再上传回 OneDrive 而不是直接在 OneDrive 修改。 Centos 挂载到本地前需要先安装 fuse: 其他 Linux 系统自行变通。 以上文的配置 `wd` 为例,将其根目录挂载至本地根目录的 `od` 文件夹中: copy ``` rclone mount wd:/ /od/ ``` 访问 `/od` 目录即可看到 OneDrive 里面的文件。若其他程序读取挂载目录时出现问题,可尝试以下参数比较详细的挂载命令: copy ``` rclone mount wd:/ /od/ --umask 0000 --default-permissions --allow-non-empty --allow-other --buffer-size 32M --dir-cache-time 12h --vfs-read-chunk-size 64M --vfs-read-chunk-size-limit 1G ``` 最后修改:2023 年 09 月 10 日 © 允许规范转载 打赏 赞赏作者 赞 如果觉得我的文章对你有用,请随意赞赏