山野莽夫

  • 归档
    • 随笔
    • 建站资源
    • 分享
    • 代码
  • 地球物理学
    • 专业课
    • 概念解释
  • 计算机
  • 互联网
  • 教程
  • 规划
  • 实验室
    • 珍藏的软件
    • 贴吧云签到
    • A1账号自助申请
山野莽夫
小学生的挣扎的点点滴滴
  1. 首页
  2. 互联网
  3. 正文

又一个功能强大的cloudflare workers onedrive 索引工具(OneDrive-Index-Cloudflare-Worker)部署教程

2020年5月15日 10045点热度 2人点赞 4条评论

onedrive 很容易获取到,大把的免费A1账号,有很多人也有自己的全局。如果你没有也可以获取本站的账号。https://www.shanyemangfu.com/office365-a1.html

有的时候想要分享一下文件搞个onedrive索引。onedrive索引工具很多了,olaindex ,pyone等等。还有开山之作oneindex。但是白嫖的最高境界就是不花钱就可以免费使用吧。前边的多少需要个web服务器,而我们连这个钱也不想花。那么部署在CF workers上边就是个不错的选择,因为他还给提供了免费的域名使用。博客曾经介绍过一个可以部署在cf workers上边的onedrive索引工具FODI,但是FODI,功能有点少而且总感觉体验不是很好。但是还有大佬开发的OneDrive-Index-Cloudflare-Worker,这个甚至没有html静态页面,也就是我们不需要为前端找服务器了。现在就介绍一下这个新玩具。

项目地址:https://github.com/heymind/OneDrive-Index-Cloudflare-Worker

1.新建app应用

访问如下链接新建应用

https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade

当然需要登录你的账户。

重定向url填写

https://heymind.github.io/tools/microsoft-graph-api-auth

然后记下client_id备用。

2.新建密码secret

保存客户端密码,这就是后文需要的client_secret,保存备用。

3.添加api权限

需要添加offline_access, Files.Read, Files.Read.All

4.获取refresh_token

使用这个工具 microsoft-graph-api-auth 获取 refresh_token 参数

首先填入client id。得到下一步的code。可能需要改成如下图所示,来自作者发布的教程视频。

认证后需要登录授权,授权完成会得到code.作者视频演示的是家庭版code很短,但是我实测E5订阅code很长。code会自动回填入下一步所需要的位置。

然后就可以获取refresh_token了。应用id自己填好了,需要填写第二步获取的client secret。

点击GET TOKEN 得到如下页面。

搜索一下refresh_token,然后复制,引号内的都是。复制好备用。

5.新建 cf worker

复制如下程序代码,到cf workers。

https://github.com/heymind/OneDrive-Index-Cloudflare-Worker/blob/master/index.js

然后修改图中红色部分的参数为前边保存的参数。还有一处需要注意,base那儿需要修改为根目录或者你要分享的目录。因为作者代码中写的是Share,但是你的onedrive可能没有这个文件夹,可能会出现404。

然后保存并部署就可以了,然后修改成你想要的地址,就可以使用了。

6.开启更多功能

中转下载

利用 Cloudflare 服务器中转 OneDrive 中文件的下载,以提高中国大陆的下载体验。已知问题,无法显示下载进度。在配置中开启 proxyDownload 功能,在文件直链路径后面加 ?proxied 即可开启,例如作者提供的测试连接:https://storage.idx0.workers.dev/Other/zero_file?proxied

设置账号密码

修改为true,然后修改账号和密码就行了。

 缓存功能

利用 Cloudflare CDN 来缓存 OneDrive 中文件,目前有两种缓存模式:

  • 整个文件缓存: 文件会先完整传输到 Cloudflare 的服务器后再返回给客户端。文件太大可能超过 Cloudflare Worker 限制的单次请求运行时间。
  • chunk 缓存: 流式传输与缓存,无法正确显示 Content-Length。

在配置中开启 cache 功能,可以配置两种缓存模式的选择以及启用缓存的路径地址。

缩略图功能(默认开启了)

作者提供了如下示例:

对于图片文件,可以直接获取不同尺寸的缩略图。 比如:https://storage.idx0.workers.dev/Images/public-md-image-20191010113652775.png?thumbnail=mediumSquare

可用的取值参见:https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/driveitem_list_thumbnails?view=odsp-graph-online#size-options

小文件上传

可以利用这个工具直接上传小文件到 OneDrive 上 ( 小于 4MB ,OneDrive API 的限制,比这个大就得创建 upload session 反正很麻烦 )

在配置中开启 upload 功能,并设置一个密钥 key ( 防止游客上传文件 )。

比如:

POST https://storage.idx0.workers.dev/Images/?upload=<filename>&key=<key>

注意:开启该功能需要 Files.ReadWrite 权限

但是貌似并没有前端上传界面,应该需要我们自己写个界面或者直接post请求。

图床

同时开启小文件上传和缓存功能可以当做图床使用。还可以配合缩略图功能,取得不同的缩略图放在博客中使用。

作者的示例:

例如 https://blog.idx0.dev 在首页文章列表配图使使用了 large 尺寸的缩略图,在侧栏文章列表中使用了 smallSquare 尺寸的缩略图。

其实也可以直接选择一个目录,比如Images进行缓存,然后把图像传到这个目录即可。你可以使用第三方工具,比如博客曾经介绍过的raidrive。这样就直接可以使用这个图像的链接了。我放了一张图像的测试效果。访问如下图片链接即可。

https://onedrive.symf.workers.dev/Images/QQ20200515163047.png

总结

1.相较于FODI更美观一些。

2.相较于功能较多,但是视频没有在线观看功能。但是有图床功能。

3.cloudflare 现在速度真的不敢恭维,真的慢啊。

参考资料:

  • 作者视频:https://www.bilibili.com/video/av89209298/
  • 项目地址:https://github.com/heymind/OneDrive-Index-Cloudflare-Worker
标签: office365 office365A1 onedrive
最后更新:2020年5月15日

小菜菜

菜鸟

打赏 点赞
< 上一篇
下一篇 >

文章评论

  • yujiang

    获取refresh_token时返回{"error":"invalid_request","error_description":"AADSTS90023: Cross-origin token redemption is permitted only for the 'Single-Page Application'及后面一小串不包含refresh_token的信息

    2020年8月28日
    回复
    • 小菜菜

      @yujiang 多试几次,不要漏掉每一个细节,每一步都不能漏

      2020年9月3日
      回复
  • woku

    求教如何默认就中转下载 不要加上proied就可以用

    2020年9月28日
    回复
    • 小菜菜

      @woku 这个作者没提供,如果想实现,大概只能修改源代码

      2020年10月1日
      回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据。

    标签聚合
    ppt 虚拟机 onedrive wordpress c语言 宝塔面板 模板 地震学程序
    最新 热点 随机
    最新 热点 随机
    Azure Student 微软云 学生订阅 免费12个月用量避坑注意点集合 MP3音频文件格式详细解析 python按固定采样点个数分割wav格式音频 愉快使用谷歌免费人工智能平台colab,训练你的神经网络模型,为你的学术生活添砖加瓦 华为云版轻量应用服务器-云耀云服务器简单体验评测 Cloudflare 免费CDN自定义节点ip之自选cloudflare 高速节点ip工具分享
    UEFI+GPT环境下安装 Deepin引导分区和引导文件研究 数据结构(C语言版严蔚敏著) 李的项目 新开始 重复造轮子系列-onedrive 文件分享列表程序OneIndex最简单无服务器安装教程 考研英语复试常考话题答题技巧及范文--谈谈你的大学

    COPYRIGHT © 2021 shanyemangfu.com. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    蜀ICP备15031791号-2