在 Cloudflare 部署 FODI 后端

ChouCong ... 2021-11-02 文档
  • FODI
大约 4 分钟

之前写过一个基于腾讯云 SCF 的 OneDrive 列表程序 FODI,现在腾讯云要收费了,每月至少 8 毛钱,虽然不多,但既然 Cloudflare 仍是免费的,不如移植一下,反正只是改改入口。

突然白屏

refresh_token有效期 3 个月,如突然无法打开,请 重设后端代码 (opens new window)计划使用 Github Action 自动更新,还没开始写,请耐心等待。 现已支持自动续期,请展开下方迟到的自动续期查看(如果是初次部署,请阅读完其它部分再看)。 迟到的自动续期

迟到的自动续期

之前,FODI 每过 3 个月要重设后端代码,原因是 Cloudflare WorkerServerless 环境,不支持持久化存储。刚编写 FODI 时,Cloudflare KV 还处于收费状态,如果使用第三方免费存储则担心可用性和延迟问题。

考虑过使用 CI 定时更新环境变量但一直没有动工,想着整体重构后一并添加。但现在重构意愿不强了,Cloudflare KV 免费服务也已推出一段时间,于是添加几句代码,让它支持 Token 自动续期

# 重设后端代码

首先,打开 部署助手 (opens new window),按照页面上方步骤重设 Worker 代码。

# 创建 KV 命名空间

保存好代码后,切换到顶部菜单栏的 KV 标签。在 命名空间名称 下方的输入框中输入 FODI_CACHE,随后点击右边蓝色的 添加 按钮。

a64a4c6e8fa445dd91353d75ddd3dc04.png

# 添加 KV 命名空间

在 Worker 中绑定 KV 转到 FODI Worker 脚本的 设置 页面,点击页面中部 KV 命名空间绑定 项目右侧的 添加绑定 按钮。

添加命名空间绑定

变量名称 下方的输入框键入 FODI_CACHEKV 命名空间 下拉框也选择 FODI_CACHE,最后点击 保存

设定变量名称

# 添加续期计划任务

转到设置左边的 触发器 面板,点击页面右边蓝色的 添加 Cron 触发器 按钮。

添加触发器

切换到 添加 Cron 触发器 项目的 Cron 标签,在 Cron 下方输入框键入 0 0 1 * *,最后点击右下方蓝色的 Add Trigger 按钮。

保存触发器

# 验证 Token 是否保存

现在打开你的 FODI 前端等待网页列出文件后,再次进入 KV 面板,点击页面中部 FODI_CACHE 右侧的 查看。

查看 KV

当看到 token_data 时,表明代码工作正常,不出意外,以后都不再需要手动续期。

token_data

# 演示地址

# 注册 Cloudflare 并创建 Workers

打开 Cloudflare 注册页面 (opens new window),输入 邮箱密码 后点击 Create Account,进入下个页面后直接点击左上角的 CLOUDFLARE 图标进入控制面板主页,不要进行其他操作。

#

进入主页后,点击靠近右下角的 Workers

#

此时系统会建议你修改子域名,直接点击 Set up,随后点击弹出对话框中的 Confirm。

#

之后会进入套餐选择页面,页面往下拉,找到 Continue with free,点击它。

#

完成上述步骤后,系统会发送确认邮件到你的注册邮箱,请自行登录邮箱,找到相关邮件,点击其中的确认链接,完成确认。

# 上传 FODI 后端

完成邮箱验证后,再次点击左上角的 CLOUDFLARE 图标进入控制面板主页,点击右下角的 Workers

现在点击页面中间你刚刚创建的函数,进入代码编辑界面,随后打开 FODI Deployment Helper (opens new window),按照指引生成并复制代码,粘贴到下图的代码编辑器中。

#

填写完毕后,点击页面中下部的 Save and Deploy

# 部署 FODI 前端

前端部署方法和老文章相同,见 通过 Github Pages 部署前端 章节。

唯一不同的是 SCF 网关地址 要换成 Cloudflare 的,右击下图箭头,选择 复制链接地址 即可获得。

#

最后如果这个项目帮到了你,不妨到 Github (opens new window) 为我点颗星。