获取OneDrive直链

本应用的目的是为了批量获取OneDrive直链,方便在其他站点外链。前身为提取OneDrive直链地址工具的网页版,因为原来的工具失效了,软件版也不是那么好用了,因此决定使用OneDrive官方API来进行获取,确保不失效。

隐私声明

使用微软官方API,这里不会得到你的账号密码和其他用户资料。
目前仅申请了Files.Read、Files.Read.Selected两个权限,API只会返回用户选择的文件的信息,不会获得其他内容。

使用方法

控制面板

输出掩码选择

▲以上掩码设置保存在浏览器本地

输出面板

F&Q

额外创建分享链接 是什么?
1drv.ws 是另一个第三方项目The OneDrive Direct Download Link Helper,通过获取文件的下载链接来达到外链目的。
只需要将 1drv.ms 修改为 1drv.ws 即可。 因为需要后端实现对 onedrive.live.com 的重定向,因此本纯前端网页程序无法内置。 最终重定向地址类似于“官方图片下载直连”
优点:直接使用生成的分享链接,不需要先嵌入,再添加 authkey。据说是香港的CDN,比较快。
缺点:API 必须使用 share 模式来读取数据,因为无法直接选择文件夹,因此 OneDrive “由我共享”内会生成大量项目。
该方式得到的是下载链接,并不能直接在浏览器内预览文件。
如何书写掩码?
2020年3月25日新增,并推荐使用ES6原生模板字符串 ${表达式} 书写方式。 “file”表示该文件信息,“index”表示在获取列表中的序号,具体的JSON对象会在获取数据后发送到控制台(或查看全局变量 redata ),需要更多信息的的自己去看吧。
旧方法目前仍可用,但因为是自己实现的,因此不再推荐。旧方法请参考掩码用法底部的高级用法。 旧方法的掩码转新写法一般简单把前面的 % 修改为 $即可,但若掩码内使用了 \ 转义符的需要去掉,掩码外需要使用 \ 和 ` 的则需加上转义符。 并且如果使用了变量定义,需要将其修改为闭包的函数表达式“(function(可选接收传入参数){任何代码 return 输出字符串;})(可选传入外部参数)”
为什么这个应用必须要在https下运行?
微软的规定,非https只返回错误,我也不想。
为什么要把文件放在“公开”文件夹?
新版OneDrive只有“公开”文件夹(含子文件夹)的权限才是“所有人”,其他文件夹分享必须登录才能看到,无法成功外链。
OneDrive窗口里如何全选?
磁贴模式下:选中第一个,拉到底下,按住Shift点击最后一个,中间的就会自动选上了。
列表模式下:点左上角那个选中全部的复选框就行了。
如何收回我授予的权限?
访问微软账户你已授予访问权限的应用和服务删除即可。
没有“公开”文件夹怎么办?
好像现在的新账号已经没有公开文件夹了。就需要麻烦点,添加访问通行证。
选中需要共享的文件夹,点击嵌入
点击嵌入
在右方复制authkey及其值。将来这个文件夹内的文件及子文件夹都只需要这同一个通行码。
复制authkey
如果忘记,可以点击右上角信息符号,查看共享链接
查看信息
把authkey及其值加入到x外链地址掩码最后面,作为链接的参数,格式为“?authkey=xxxxxxx”
修改掩码