Fork 自 onedrive-cf-index,请 ⭐star 原项目
此说明已过时,请查看原库中文文档,有详尽的世纪互联部署教程
需自行保存的 key:
- redirect_url
- client_id
- client_secret
- refresh_token
-
Azure.cn
应用注册 :任何组织目录(任何 Azure AD 目录 - 多租户)中的帐户
重定向 url
键入并保存http://localhost/od-cf
-
保存
client_id
,添加并保存client_secret
-
API 权限(Microsoft Graph)添加
offline_access, Files.Read, Files.Read.All
三个权限。 -
使用 POSTMAN 获得
refresh_token
源库提供的
https://heymind.github.io/tools/microsoft-graph-api-auth-cn
(世纪互联)尝试失败, 所以人工获取:
-
浏览器访问如下地址,需自行替换
[client_id]
https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize?client_id=[client_id]&response_type=code&redirect_uri=http://localhost/od-cf&response_mode=query&scope=offline_access%20Files.Read%20Files.ReadWrite.All
登陆后复制地址栏
code=
后字符串作为authorize_code
, 即为下面 json 里的code
-
发送 POST 获得
refresh_token
,发送 post 请求,可以使用 postman 或 curl ,按照如下key:value
在 POSTMAN 里填入(请自行填入client_id
、code
、client_secret
){ "client_id": "", "code": "", "redirect_uri": "http://localhost/od-cf", "grant_type": "authorization_code", "client_secret": "" }
会成功返回
refresh_token
, 参考下图,保存备用。如出现问题,请参考 azure doc
clone (fork) 本项目,安装依赖:
# 安装Wrangler实现项目打包,附加从命令行部署到 cf worker(后项可选)
npm i -g @cloudflare/wrangler
# 安装依赖
npm i
使用 wrangler 前的准备:
-
进入 https://dash.cloudflare.com/profile/api-tokens » 创建 cloudflare api 令牌(使用 Edit Cloudflare Workers 模板) » 登陆(示例如下)
# 登陆 cloudflare wrangler config # 验证登录状态 wrangler whoami
-
创建 worker ,获取 Account ID 在 cloudflare 创建新 worker,并在 worker 的 overview 页面右侧获取到
Account ID
如果需要使用 cloudflare 里的域名绑定 worker,需要额外获取
zone ID
, 参考文档 -
创建 KV
# Create KV bucket
wrangler kv:namespace create "BUCKET"
复制返回对象于第四步中 kv_namespaces
数组中
-
修改两个配置文件的几个选项
wrangler.toml
# 刚刚创建的 worker 名 name = "beet" # 获取的 Account ID account_id = "" # 如果使用了域名,需要添加 zone_id # zone_id = "" # KV kv_namespaces = [ { binding = "BUCKET", id = "1cac5d222f33415dbd351720b331a5b5", preview_id = "ad5f8a197a784fef8cd2282a8997c1b0" } ]
src/config/default.js
client_id: '', // 网盘索引目录 base = "", firebase_url = '',
# 上传 refresh_token, client_secret, firebase_token 到 cloudflare 并加密
wrangler secret put REFRESH_TOKEN
# ... enter your refresh_token
wrangler secret put CLIENT_SECRET
# ... enter your client_secret
全部上传成功后,可以预览和发布:
wrangler preview
wrangler publish
如出现网络问题无法上传,可手动复制
worker/worker.js
到 cf worker
themes/spencer.css
-> CSS
src/render/htmlWrapper.js
-> HEAD FOOTER
themes/prism-github.css
-> prism theme
src/folderView.js
-> home intro
src/config/default.js
-> toggle pagination feature