Map Onedrive / OneDrive for Business(SharePoint) as a Drive in Linux
在Linux中使用Webdav原方式映射 OneDrive / OneDrive for Business(SharePoint) 为本地硬盘
平常我用 OneDrive For Bussiness 来同步工作文档,账号是大学的邮箱注册的 OneDrive,不过可惜的是只有1T空间,而且没有开API权限,所以是不能用Github上那些使用API开发的客户端。
因为这微软这坑爹的API权限,在Linux下我都是使用 gdrive 来同步的。而Windows下(自己的本),使用链接方式实现同步到两个盘会导致我的破工作电脑会卡(美帝良心E450),毕竟两个同步软件实时同步挺占CPU资源的。
之前看到VICER大佬发的Windows下映射网络驱动器的方式挂载OneDrive,突然想起来以前我就尝试过在使用Webdav方式挂载OneDrive,在Linux下挂载报错302,不过那时只有可怜的15G的个人版本OneDrive,后来就不了了之了。
在GG上搜寻了一下,发现了一个法国佬提供了一个使用webdav方式挂载OneDrive For Bussiness的思路。
原来当时是缺少了Cookies,所以在linux下挂载不成功,通过观察,登录OneDrive确实像法国佬那样说的多rtFa
和FedAuth
两个字段。
挂载OneDrive For Business
以下操作都是在Deepin下实践过的。首先要安装davfs2
# apt-get install davfs2
获取Cookies,先在浏览器中登录OneDrive For Business
然后是选择挂载路径,我打算把OneDrive挂载到/mnt/sharepoint
下,修改/etc/davfs2/davfs2.conf
,添加Header
来挂载OneDrive,记得把XXXXXX
,和YYYYYY
替换一下
[/mnt/sharepoint/]
ask_auth 0
add_header Cookie rtFa=XXXXXX;FedAuth=YYYYYY
然后获取webdav路径。登录OneDrive For Business后会打开类似下面的首页
https://xxxxxxxcn-my.sharepoint.com/personal/rootmaster_xxxx_xxx_cn/_layouts/15/onedrive.aspx
把后面的_layouts/15/onedrive.aspx
去掉,然后加上Documents
,得到
https://xxxxxxxcn-my.sharepoint.com/personal/rootmaster_xxxx_xxx_cn/Documents
就是你的webdav路径。然后挂载咯
# mount.davfs -o rw "https://xxxxxxxcn-my.sharepoint.com/personal/rootmaster_xxxx_xxx_cn/Documents" /mnt/sharepoint检查挂载成果root@ryan-PC:/mnt/sharepoint
# ls
Attachments Documents xxxxxxWork Share WorkSpace
BookStore Forms lost+found Study
'Brake @ xxxx.xxx.cn' GNS3 Message WebSiteFiles
挂载OneDrive个人版还是没有尝试成功说明
1.无需API,对于那些没有管理员的onedrive for business,那肯定是很爽的
2.cookies会过期,对于有api的建议使用rclone挂载。
3.不支持 docker/wsl,openvz 需要服务商开启 fuse 模块