惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
Stack Overflow Blog
Stack Overflow Blog
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
T
The Blog of Author Tim Ferriss
博客园 - 叶小钗
N
Netflix TechBlog - Medium
腾讯CDC
C
Check Point Blog
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
S
SegmentFault 最新的问题
F
Fortinet All Blogs
美团技术团队
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 司徒正美
F
Full Disclosure
Recorded Future
Recorded Future
D
DataBreaches.Net
博客园 - 【当耐特】
Martin Fowler
Martin Fowler
J
Java Code Geeks
I
InfoQ
Y
Y Combinator Blog
A
About on SuperTechFans
AI
AI
爱范儿
爱范儿
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Forbes - Security
Forbes - Security
W
WeLiveSecurity
M
MIT News - Artificial intelligence
雷峰网
雷峰网
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
Schneier on Security
Schneier on Security
The GitHub Blog
The GitHub Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
G
GRAHAM CLULEY
Know Your Adversary
Know Your Adversary
Latest news
Latest news
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Docker
Recent Commits to openclaw:main
Recent Commits to openclaw:main
量子位
V2EX - 技术
V2EX - 技术
Project Zero
Project Zero

七米蓝

自建阿里云盘WebDAV功能并搬运资源 使用微软验证器同步Edge浏览器密码 在新版Edge浏览器启用B站HEVC、HDR、8K 记录几款软件的批处理快捷命令 提取UWP版office安装包 将手机内网穿透当作服务器并运行了几个项目 Link Start! 视频剪辑及辅助工具 浏览器脚本收藏 Edge使用文档
让OneDrive实现WebDAV服务
2021-12-13 · via 七米蓝
姊妹篇:自建阿里云盘WebDAV功能并搬运资源

本文梳理一下已发现的几种工具实现OneDrive(for business)的WebDAV服务,for business也就是商业版OneDrive。15G的个人OneDrive账户利用能力有限且兼容性较差所以这里不作讨论,个人版挂载教程见2020年onedrive怎么配置webdav?。以下很多操作都有烂大街的教程,我在这里只是抛砖引玉综合整理一下,提供更多的思路。

一、OneDrive本身

1.1 实现方式

OneDrive本身不支持目前通行的WebDAV协议,但它自己确实有比较特殊的WebDAV服务,只是能支持它的软件很少。以我的office365 E5 OneDrive登录后根目录的链接为例:

https://chirmyram-my.sharepoint.com/personal/office_chirmyram_top/_layouts/15/onedrive.aspx

则其对应的WebDAV链接为:

https://chirmyram-my.sharepoint.com/personal/office_chirmyram_top/Documents/

观察其特点可发现,将末尾的 /_layouts/15/onedrive.aspx 替换为 /Documents/ 就可以了。末尾 /Documents/ 即为 OneDrive 根目录,也可在其后继续添加子目录。

1.2 访问工具

1.2.1 rclone

rclone是一个支持多种云储存平台、国外云盘、储存协议的命令行工具,兼容OneDrive独特的WebDAV功能。挂载时使用WebDAV方式挂载,输入自己的WebDAV链接,选择链接类型为sharepoint,填写office365的账密,详细挂载教程可参考使用rclone转存别人分享的onedrive分享链接。两个网盘对拷不会占用本地储存空间,当然流量还是烧的自己的,而且是双倍流量,不过部分 VPS 商家不会计算进入VPS的入网流量。

在其他资源账户中,赋予域内另一空白账户对其资源文件夹的只可查看权限,即只读权限,使用 rclone 配置该空白账户及资源文件夹链接,自动加密账户密码,既可共享出来以供他人批量搬运资源,又能:限制操作权限、避免泄露密码、避免没有创建 API 权限的尴尬、不必担心 refresh token 过期。

1.2.2 davfs2

davfs2是Linux端的WebDAV挂载软件,也恰好支持挂载OneDrive的WebDAV链接。挂载教程参考:以WebDav方式挂载OneDriveLinux/VPS使用davfs2挂载webdav网盘

1.2.3 Windows资源管理器

这是微软自己最原始的支持方式,但还是无法直接访问WebDAV链接。使用资源管理器间接访问WebDAV链接,需要使用IE浏览器或兼容IE的浏览器,没错还要用到这种上古技术,比如Edge浏览器的IE模式、国内浏览器的兼容模式。登陆OneDrive后点击右上角切换视图,就会多出一个在文件资源管理器中进行查看选项,点击就会弹窗跳转到资源管理器中查看文件,访问一次后再次在资源管理器地址栏中粘贴WebDAV链接也可访问,不过清理缓存或重启电脑后会失效,又要从浏览器访问。

二、第三方工具

利用第三方工具实现WebDAV服务。

2.1 Koofr

本身是一家网盘服务商,默认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

需要自行搭建,经典套娃盘。这是一个网盘程序而不是网页目录程序,具有作为网盘的基本功能,当然也可强行当目录程序,比如建立一个文件夹然后分享出去。读取OneDrive文件路径映射到Cloudreve的数据,每次操作文件都是读取自己的数据库来实现变动,所以必须经过它来操作OneDrive文件,否则在OneDrive里面单方面操作后不会同步至它的数据库,再在它里面操作会失败,除非手动修改数据库。

搭建好之后在WebDAV管理页面生成WebDAV密码,在支持挂载WebDAV的软件中使用此密码和网盘账户登陆,WebDAV链接为首页链接/dav

2.3 sharelistalist

需要自行搭建。这俩本身为目录列表程序,初始作用是将文件公开展示在网页上,附带挂载OneDrive后转化为WebDAV服务,需要自行搭建。

这里列出的sharelist是旧版0.1版本,非最新版,通过WebDAV访问文件为只读权限,即无法修改只可查看。0.1版存在较多致命bug。如挂载账户超过1个所有账户的路径都会指向同一个,使用WebDAV播放视频时间一长就会导致整个网站变为所播放视频视频的直链,相当令人头痛,曾尝试搭建分站来解决问题,但同时运行多个进程也很不方便,迫于是当时发现唯一支持挂载网盘为 WebDAV 只读功能的程序,就一直用着,憋得慌。而新版目前仍在开发中,bug还是巨多,文档也不完善。在后台设置WebDAV路径,WebDAV链接为首页链接/路径,0.1版无WebDAV账密。

alist则稳定许多,同时稳定挂载多个盘,通过WebDAV访问文件拥有完整的读写权限,WebDAV访客账号拥有只读权限,适合公开分享。WebDAV链接为首页链接/dav,账密在后台设置。

2.4 rclone

2.4.1 rclone本身

rclone不仅可以挂载第三方的WebDAV服务,还可以自己搭建WebDAV服务器(不仅可以搭建WebdAV,还可以搭建更多服务:dlna、docker、ftp、http、restic、sftp,见官方文档)。用rclone挂载OneDrive,我这里的OneDrive配置名为wd,要挂载配置项的根目录为WebDAV服务,则rclone启动命令为:

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:

yum install fuse

其他Linux系统自行变通。

以上文的配置wd为例,将其根目录挂载至本地根目录的od文件夹中:

rclone mount wd:/ /od/

访问/od目录即可看到OneDrive里面的文件。若其他程序读取挂载目录时出现问题,可尝试以下参数比较详细的挂载命令:

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
本文作者:七米蓝
本文标题:《让OneDrive实现WebDAV服务》
本文链接:https://www.chirmyram.top/archives/onedrivewebdav
版权声明:本博客文章均采用CC BY-NC-SA 4.0许可协议,转载请注明出处!