利用cloudfare+onedrive零成本搭建下载分享站

背景

现在很多人手头都一些资料需要分享给朋友下载,采用服务器自建的话成本太高,并且技术要求也不低.传统的FTP目前已经慢慢转换成了NAS,利用家里的宽带进行分享,数据的安全性高了一点,但是受限于宽带,并且常年必须开机才可以正常保障,流量大了,肯定会被撸死,另外私用云最好不要和共有云,一起使用就导致了采用NAS也不是个非常好的办法.本站曾经介绍了了利用Cloudflare解决Google Drive被墙后下载问题,采用的是CF+GD构建,那是因为GD被和谐,没有办法的办法,由于很多人没有VPS,本文介绍了一种基本无成本(时间不算)的下载站搭建方法,采用cloudfare作为web+onedrive(云存储)的方法,可以走CF的流量,可以直接走onedrive的流量,非常方便

目前类似的方法还有如下,基本也是0成本开搞,等到以后有时间再更吧

#FODI-支持cfworker|腾讯云函数|GitHub.io去部署,速度非常快
https://github.com/vcheckzen/FODI
#演示
https://logi.im/fodi.html
#OneManager-支持腾讯云函数|heroku部署
https://github.com/qkqpttgf/OneManager-php
#演示地址heroku
https://herooneindex.herokuapp.com/
#腾讯云函数SCF
https://service-pgxgvop2-1258064400.ap-hongkong.apigateway.myqcloud.com/test/abcdef/
#OneDrive-Index-Cloudflare-Worker|支持cfworkers部署,本文介绍
https://github.com/heymind/OneDrive-Index-Cloudflare-Worker
#演示
https://storage.idx0.workers.dev/

《利用cloudfare+onedrive零成本搭建下载分享站》

准备工作

自备一个cloudfare帐号,如果需域名绑定的话,点击这里注册:传送门,需要绑定域名或者简单布置cdn,可以看看这里:传送门

自备一个onedrive帐号: office365-E3|office365-E5|A1|A1P|个人版|商业版|只要有API权限的均可,也可以看看我刚写的这篇文章:传送门

安装教程

获取授权参数

去office365新建一个APP:传送门,点击帐号登录授权,点右上角新注册

《利用cloudfare+onedrive零成本搭建下载分享站》

重定向地址填这个[code]https://heymind.github.io/tools/microsoft-graph-api-auth[/code]

《利用cloudfare+onedrive零成本搭建下载分享站》

在 Certificates & secrets (证书和密码)面板创建一个新的 secret(密钥)

《利用cloudfare+onedrive零成本搭建下载分享站》

记住你的密码9Tw~kEIu1u~Z2Yg~xnJI4CQgt8h_iW4Gtt

《利用cloudfare+onedrive零成本搭建下载分享站》

在 API permissions 面板(API权限), 添加以下权限 offline_access, Files.Read, Files.Read.All,这里file.writer权限我没添加

在AI里面用Graph只看到Files.Read.Alluser.read这两个全新

《利用cloudfare+onedrive零成本搭建下载分享站》

可以直接复制搜索,必须是委托的哈,没有委托的,只能等管理员同意了

《利用cloudfare+onedrive零成本搭建下载分享站》

《利用cloudfare+onedrive零成本搭建下载分享站》

添加完毕如下图

《利用cloudfare+onedrive零成本搭建下载分享站》

以上完成后,找个文本记录下你的客户端ID和secret

如下图为客户端ID

《利用cloudfare+onedrive零成本搭建下载分享站》

以上完成之后,点击这里,获取获取refresh_token参数:传送门

先点开第4,填写进入client id,点击获取,登录帐号,获取code,注意[code]scope中主要填写的为授权,如果是只做下载,如下权限即可,如果需要上传的权限,那么需要添加个Files.ReadWrite权限[/code]

《利用cloudfare+onedrive零成本搭建下载分享站》

获取到code之后会自动填到下面.下拉到下面,填入客户端ID(Client ID)和secret(Client Secret),点击获取

《利用cloudfare+onedrive零成本搭建下载分享站》

之后在浏览弹出来的文本

《利用cloudfare+onedrive零成本搭建下载分享站》

查找[code]refresh_token[/code],并复制内容保存,就是引号中的内容

#最后获取的
refresh_token
#应用程序(客户端) ID
client_id
#客户端密码
client_secret

至此,基本上已经获得了相关参数了,需要准备的参数如下,准备完成就可以到CF里面部署了

部署代码

点击这里获取部署代码:传送门

找个文本文档,存下当前文本,修改以下参数,保存一个文本

#第6-8行代码,填入上面保存的信息
"refresh_token": "",
"client_id": "",
"client_secret": "",

#第13行代码,不修改的话需要在onedrive根目录下建一个相应的文件夹
base: "/Share"
修改为
base: "/"

#第69-71行代码,选填,本项为访问验证
#false修改为true 代表启动验证
const AUTH_ENABLED = false#
#用户名
const NAME = "admin"
#用户密码
const PASS = "password"

到CFworker中部署

点击这里登录:传送门

点击相关域名-点击workers

《利用cloudfare+onedrive零成本搭建下载分享站》

管理,新账号可能是添加,具体请看这里:传送门

《利用cloudfare+onedrive零成本搭建下载分享站》

在旁边脚本一栏内,清空原有代码,将刚才复制保存的文本粘贴进来,保存部署即可,到这里基本部署完毕

《利用cloudfare+onedrive零成本搭建下载分享站》

右面,复制工具栏内的网址,就是你的访问地址,如果需要绑定域名的话,可以参考我以前的文章:传送门

《利用cloudfare+onedrive零成本搭建下载分享站》

演示一下

官方演示:https://storage.idx0.workers.dev/

本站演示:https://fragrant-queen-9c52.shikey.workers.dev/

域名绑定演示:https://od.shikey.cf/

视频教程:

抱歉,只有登录并在本文发表评论才能阅读隐藏内容,切记不要恶意刷,否则会被限制,先阅读用户规则,一旦进入黑名单,不可能再放出来。同时注意,暂停在线支付,请联系客服QQ2441105221。

故障排除

授权失败

首先必须要在365里面点击onedrive应用,如果没有,那么是无法建立成功的,但是APP可以创建,这会给很多人带来错觉

严格按照上面写的来授权,先创建APP的加工重定向网址填写好,之后再创建客户端ID|客户端密钥,给程序授权,最后按照授权网址一步一步来获取.

注意:客户端密钥创建的时候请选择1年,否则你的站跑起来会经常需要重新授权

在创建授权的时候,请清空浏览器登录记录,并选择高版本的浏览器,实在不行把URL重新定向换成127.0.0.1,在浏览器内搞定,新手不建议这样!

目录权限

错误如下

《利用cloudfare+onedrive零成本搭建下载分享站》

是因为没有把share目录去掉,具体看上面

CDN中转

使用域名绑定是走CDN最简单的办法,绑定后只需要开启cdn即可

另外一种是官方的办法

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

还有在代码中修改,全站开启CDN,这个请自行研究

需要注意的是我感觉开了CDN速度可能会比原Onedrive会慢很多,所以建议还是不要开cdn,在域名绑定的时候把porxy关了比较好.

  1. 哈哈哈说道:

    学习一下

  2. 咲羽说道:

    获取不到code :drooling:

发表回复