移植工程:https://github.com/nickfox-taterli/rclone
编译好的版本:Linux(64位) / Windows(64位)
特别警告:SharePoint传输效率低于Graph API,如无必要,尽量使用标准API,并且不支持世纪互联.
如何进行无管理员OneDrive绑定,首先无管理员OneDrive是不可以进行API授权的,但是依然有办法获取access_token,即可以进行对接.
无管理Office特征,登录Office子号时会显示管理图标的,都是无管理状态.
进入OneDrive页面,打开F12调试工具,搜索关键字RenderListData,可以找到driveAccessToken和driveUrl两项,这是关键.
由于没有API,配置文件需要自己写,比如我提取到的信息如下.
.driveAccessToken: "access_token=eyJ0........D0" .driveUrl: "https://alumnibentley-my.sharepoint.com/_api/v2.0/drives/b!....-...."
我可以编辑配置文件~/.config/rclone/rclone.conf新增一个字段,比如我新增一个alumnibentley的字段.
[alumnibentley] type = onedrive token = {"access_token":"eyJ0........D0","token_type":"Bearer","refresh_token":"","expiry":"2020-06-30T15:22:06.648584+08:00"} drive_id = b!....-.... noadmin = true tenant_url = https://alumnibentley-my.sharepoint.com/_api drive_type = business
注意expiry时间并不准确,你可以随便写个未来的时间,因为过期时间实际上并不确定,一旦过期,只能到网页上重新获取,然后就可以玩了~
重点!权限不够怎么办?
这里是请求token的权限,如果不够,我们可以自己写POST请求,也是一样的,最高可以获取到0x17FFFF(即1572863),每一位(Bit)代表一个一个权限.
参考代码(Python)
import requests url = "https://alumnibentley-my.sharepoint.com/personal/admin_alumni_bentley_edu/_api/web/GetListUsingPath(DecodedUrl=@a1)/RenderListDataAsStream?@a1='/personal/admin_alumni_bentley_edu/Documents'&TryNewExperienceSingle=TRUE" payload = '''{ "parameters": { "__metadata": { "type": "SP.RenderListDataParameters" }, "RenderOptions": 1572863, "AllowMultipleValueFilterForTaxonomyFields": true, "AddRequiredFields": true } }''' headers = { 'Accept': 'application/json;odata=verbose', 'Content-Type': 'application/json;odata=verbose', 'Cookie': 'rtFa=[RTFA]; FedAuth=[FEDAUTH]' } response = requests.post(url, headers=headers, data = payload) print(response.text)
测试:
目前测试主流上传下载创建目录同步功能是OK的,另外,世纪互联不会产出access_token,只有变化较为多的FedAuth和rtFa,有需要的话,用这两个参数也可以进行API操作.
这个感觉比webdav要好用很多,大佬有测试过token的有效期是多少吗
@啦啦啦 太晚回复了,但是这段时间一直想办法改进,实际Token有效期7200,如果是首页获取token有效期28800.
大佬,这个支持世纪互联onedrive和https://futtsu.teracloud.jp/dav/Notesharepoint吗
大佬,目前rclone1.54官方已经正式支持世纪互联了,请问能否把无管理员 Onedrive 使用的特性合入最新版呢?
@endedman 配置比较麻烦,我估计用的人不多吧,无管理员的token限制比较大.
@endedman 现在用WebDAV方式配置也可以的.
为什么我用F12,然后搜索Ren就没有这个选项?
@zzjy 这个教程已经很久了,现在可以用SPO方式挂在,最新的rclone已经支持.
多谢。
我想用rclone复制别人给我分享的sharepoint文件夹的内容,但是别的tenant下的东西rclone没法直接挂载,WebDAV也不行。用了这个教程的内容可以了,不过还需要对rclone做一些改动,比如增加root_folder_id的支持。