我正在尝试从 Linux 控制台访问我的“Onedrive for Business”存储,特别是无头 Ubuntu 16.04 服务器。唯一的正式支持的方法是 Windows 同步应用程序。
我想使用 Onedrive 作为远程文件系统延长我的本地存储,而不是使用同步客户端在本地复制所有文件。
“Onedrive for Business”实际上是 Sharepoint 的一个变体,它不接受 webdavs 上的用户名和密码 - 必须已经存在一个用于 webdavs 客户端的身份验证 cookie。
通过调整以下说明,我已成功将远程存储安装为 Windows 10 中的 webdavs 文件夹:https://www.imss.caltech.edu/content/mounting-onedrive-business-mapped-drive但它仅在使用 Internet Explorer 登录我们的 Onedrive 网站并创建 Windows Explorer 使用的 cookie 后才有效。
在 Linux 上,我可以通过在 Konqueror Web 浏览器中登录 Onedrive 网站,然后使用该 cookie 连接到 Konqueror 文件浏览器中的 webdavs 来复制此行为。这总比没有好,但我确实需要控制台访问权限。不幸的是,KioFuse 似乎早已被废弃。
除了 Konqueror 之外,还有什么方法可以让 Linux 控制台访问远程文件系统?我查看了 davfs2、gvfs 和 cadaver,但找不到任何使用现有 cookie 进行身份验证的文档。
答案1
您可以使用 davfs2 和add_header
配置选项来发送曲奇饼HTTP 标头。将这两行添加到/etc/davfs2/davfs2.conf
:
[/mount/path]
add_header Cookie rtFa=<...>;FedAuth=<...>
其中/mount/path
是您的挂载路径,rtFa
和FedAuth
是您连接到 OneDrive 时浏览器发送的 HTTP 请求中可以找到的 Cookie。
确保 的第二个参数中没有空格add_header
。
然后您可以从命令行安装驱动器:
/sbin/mount.davfs https://<name>.sharepoint.com/<...> /mount/path