MENU

在 Cloudflare 部署 FODI 后端

2019 年 12 月 23 日 • 阅读: 70433 • 后端

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

突然白屏

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

迟到的自动续期

之前,FODI 每过 3 个月要重设后端代码,原因是 Cloudflare Worker 是 Serverless 环境,不支持持久化存储。刚编写 FODI 时,Cloudflare KV 还处于收费状态,如果使用第三方免费存储则担心可用性和延迟问题。考虑过使用 CI 定时更新环境变量但一直没有动工,想着整体重构后一并添加。但现在重构意愿不强了,Cloudflare KV 免费服务也已推出一段时间,于是添加几句代码,让它支持 Token 自动续期。

重设后端代码

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

创建 KV 命名空间

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

添加 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 注册页面,输入 邮箱密码 后点击 Create Account,进入下个页面后直接点击左上角的 CLOUDFLARE 图标进入控制面板主页,不要进行其他操作。

login

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

workers

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

confirm

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

continue

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

上传 FODI 后端

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

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

continue

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

部署 FODI 前端

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

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

copy

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

TG 大佬群 QQ 大佬群

最后编辑于: 2021 年 11 月 29 日
返回文章列表 文章二维码
本页链接的二维码
打赏二维码
添加新评论

Loading captcha...

已有 122 条评论
  1. 白煮蛋 白煮蛋   Windows 10 x64 Edition  Google Chrome 86.0.4240.198

    感谢大佬,已经搭建成功,请问大佬有更新吗,其他都挺好,就是查看图片要一张张查看一张张关闭,是否可以添加个上一张下一张的切换按钮或者是缩略图。

  2. 豆腐 豆腐   Android 10  WebView 4.0

    我想自定id,在获取代码时候提示我需要单页面程序才能进行,换了后又提示没有设置回复url,不能登录,要怎么办@(笑尿)

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 91.0.4472.164

      @豆腐那就设啊

    2. 豆腐 豆腐   Windows 10 x64 Edition  Firefox 90.0

      @LOGI我设置了回复url成单页面回复,但是点前往登录时候出错了,又提示没有设置回复url

    3. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 91.0.4472.164

      @豆腐注册web应用
      https://docs.microsoft.com/zh-cn/azure/active-directory/develop/scenario-web-app-sign-user-app-registration

  3. 維京 維京   Windows 10 x64 Edition  Google Chrome 86.0.4240.198

    完美可用,請問能嫖 office 365 開發者嗎?

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 90.0.4430.212

      @維京https://logi.im/script/permanently-keeping-an-office-e5-account.html

  4. 大白菜 大白菜   Windows 10 x64 Edition  Google Chrome 90.0.4430.93

    大佬你好,我部署搭建好了。
    直接浏览器下载没有问题,但是通过其他网页程序调用的时候出现了跨域错误。具体错误提示如下:
    Access to XMLHttpRequest at 'worker转换的静态文件地址' from origin '请求域名地址' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

    怀疑是跨域请求错误,尝试了多个解决办法无果。认为应该需要在worker脚本中添加允许跨域请求,请问大佬该怎么处理啊?

  5. Mulsd Mulsd   Windows 10 x64 Edition  Google Chrome 89.0.4389.90

    重设后端代码的网站已经403了

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 89.0.4389.114

      @Mulsd之前迁移了网站,现在好了

  6. 小阿蓝呀 小阿蓝呀   Windows 10 x64 Edition  Firefox 75.0

    我靠,又发现了一位大佬@(笑眼)@(笑眼)

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 88.0.4324.104

      @小阿蓝呀不是大佬#(害羞)

  7. 好的好 好的好   Android 9  WebView 4.0

    请问localhost拒绝连接是什么

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 86.0.4240.75

      @好的好不需要管,复制网址回到第一个页面粘贴,进行后续操作

  8. 都还没睡醒 都还没睡醒   Windows 10 x64 Edition  Google Chrome 85.0.4183.102

    https://logi.im/fodi/get-code/

    ReplayURL(自定义 ID、SECRET 时,需要填写)

    怎么填写

  9. luck luck   Windows 10 x64 Edition  Google Chrome 74.0.3729.108

    我按照您文章部署到Cloudflare,最后打开https://xxx.github.io,显示的是空白网页,现在不能用了吗?

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 84.0.4147.135

      @luck有问题加文末群组

  10. 小草 小草   Windows 10 x64 Edition  Google Chrome 84.0.4147.105

    大佬,想问一下这个东西访问是不是会触发API,我可以用来续订E5试用订阅呢?只为了刷API是不是可以偷懒不配置前端呢

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 84.0.4147.105

      @小草刷 E5 看我主页文章

  11. 暮城 暮城   Windows 10 x64 Edition  Google Chrome 84.0.4147.89

    大佬,感谢我已经架设好了,但是可以帮我看下为什么我的盘不显示大小,文件夹都是现实size:0kb
    链接:https://pan.mcheng.cn/

  12. agul agul   Windows 10 x64 Edition  Google Chrome 83.0.4103.116

    onedrive登录出问题了!

    出现问题
    您请求的页面暂时不可用。对由此给您造成的不便,我们深表歉意,请几分钟后再返回查看。

  13. mini mini   Windows 10 x64 Edition  Google Chrome 83.0.4103.116

    博主 是不是 这个已经失效了?
    我现在打开 就显示一个标题 没有内容了
    (前段时间 还没有问题)

  14. 带头小弟 带头小弟   Windows 7 x64 Edition  Google Chrome 81.0.4044.138

    大佬,怎么添加多个onedrive盘

  15. zhs zhs   Windows 10 x64 Edition  Google Chrome 83.0.4103.61

    你好博主,我已经成功部署了FODI,但是我想更改域名有什么办法吗?我用CNAME发现并不能成功指向我的FODI

  16. 萌新小弟 萌新小弟   Windows 10 x64 Edition  Google Chrome 80.0.3987.149

    大佬怎么上传啊,为什么我打开后是空白

  17. 夜光藏森 夜光藏森   Windows 10 x64 Edition  Google Chrome 81.0.4044.129

    大佬,,上午用腾讯云部署,发现文件夹打不开,里面的内容不展示。换了 Cloudflare 后成功了,不知道什么原因。

  18. yr yr   Windows 10 x64 Edition  Google Chrome 80.0.3987.132

    为什么自己部署的打不开 要么翻山越岭要么使用光猫WiFi或者使用手机数据才能打开 而你的demo却能打开

  19. loaden loaden   Windows 10 x64 Edition  Google Chrome 80.0.3987.149

    你好,我这里使用cloudflare在设置后端获取网关时出现1101的报错
    控制台报错如下
    > `Uncaught (in response) TypeError: Cannot read property 'length' of undefined`

    > `wor`ker.js:168 Uncaught (in promise) TypeError: Cannot read property 'length' of undefined`
    `at fetchFiles (worker.js:168)`
    at async handleRequest (worker.js:35)`

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 80.0.3987.149

      @loaden网盘里传个文件,如果代码开头的 '/Index' 没删,删掉它

    2. 余舟客 余舟客   Android 10  QQ 浏览器 6.2

      @LOGI已解决,感谢大佬!

    3. 天玑星 天玑星   Windows 10 x64 Edition  Google Chrome 80.0.3987.162

      @LOGI同样碰到这个问题,上传个文件就解决了,感谢大佬!

  20. nike nike   Windows 10 x64 Edition  Google Chrome 80.0.3987.132

    楼主,能否支持用edu.cn的邮箱。我的学校的邮箱好像没有API,
    https://www.onesrc.cn/p/onedrive-for-onepoint-configuration.html
    我看这个链接有,可是不会弄,你写的这个能支持sharepoint吗?

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 80.0.3987.132

      @nike抱歉,不会支持