之前写过一个基于腾讯云 SCF 的 OneDrive 列表程序 FODI,现在腾讯云要收费了,每月至少 8 毛钱,虽然不多,但既然 Cloudflare 仍是免费的,不如移植一下,反正只是改改入口。
突然白屏
refresh_token
有效期 3 个月,如突然无法打开,请 重设后端代码。
迟到的自动续期
之前,FODI 每过 3 个月要重设后端代码,原因是 Cloudflare Worker 是 Serverless 环境,不支持持久化存储。刚编写 FODI 时,Cloudflare KV 还处于收费状态,如果使用第三方免费存储则担心可用性和延迟问题。考虑过使用 CI 定时更新环境变量但一直没有动工,想着整体重构后一并添加。但现在重构意愿不强了,Cloudflare KV 免费服务也已推出一段时间,于是添加几句代码,让它支持 Token 自动续期。
重设后端代码
首先,打开 部署助手,按照页面上方步骤重设 Worker 代码。
创建 KV 命名空间
保存好代码后,切换到顶部菜单栏的 KV
标签。在 命名空间名称
下方的输入框中输入 FODI_CACHE
,随后点击右边蓝色的 添加
按钮。
在 Worker 中绑定 KV
转到 FODI Worker 脚本的 设置
页面,点击页面中部 KV 命名空间绑定
项目右侧的 添加绑定
按钮。
在 变量名称
下方的输入框键入 FODI_CACHE
,KV 命名空间
下拉框也选择 FODI_CACHE
,最后点击 保存
。
添加续期计划任务
转到设置左边的 触发器
面板,点击页面右边蓝色的 添加 Cron 触发器
按钮。
切换到 添加 Cron 触发器
项目的 Cron
标签,在 Cron 下方输入框键入 0 0 1 * *
,最后点击右下方蓝色的 Add Trigger
按钮。
验证 Token 是否保存
现在打开你的 FODI 前端等待网页列出文件后,再次进入 KV
面板,点击页面中部 FODI_CACHE
右侧的 查看
。
当看到 token_data
时,表明代码工作正常,不出意外,以后都不再需要手动续期。
演示地址
注册 Cloudflare 并创建 Workers
打开 Cloudflare 注册页面,输入 邮箱
和 密码
后点击 Create Account
,进入下个页面后直接点击左上角的 CLOUDFLARE
图标进入控制面板主页,不要进行其他操作。
进入主页后,点击靠近右下角的 Workers
。
此时系统会建议你修改子域名,直接点击 Set up
,随后点击弹出对话框中的 Confirm
。
之后会进入套餐选择页面,页面往下拉,找到 Continue with free
,点击它。
完成上述步骤后,系统会发送确认邮件到你的注册邮箱,请自行登录邮箱,找到相关邮件,点击其中的确认链接,完成确认。
上传 FODI 后端
完成邮箱验证后,再次点击左上角的 CLOUDFLARE
图标进入控制面板主页,点击右下角的 Workers
。
现在点击页面中间你刚刚创建的函数,进入代码编辑界面,随后打开 FODI Deployment Helper,按照指引生成并复制代码,粘贴到下图的代码编辑器中。
填写完毕后,点击页面中下部的 Save and Deploy
。
部署 FODI 前端
前端部署方法和老文章相同,见 通过 Github Pages 部署前端 章节。
唯一不同的是 SCF 网关地址
要换成 Cloudflare 的,右击下图箭头,选择 复制链接地址
即可获得。
最后如果这个项目帮到了你,不妨到 Github 为我点颗星。
如有问题请在下方留言,文章转载请注明出处,详细交流请加下方群组!请大佬不要屏蔽文中广告,因为它将帮我分担服务器开支,如果能帮忙点击我将万分感谢。
大佬,现在还能部署么,我世纪互联api挂了,重新用国际版od,生成配置,粘贴到cfworks,但是打开是cf的cdn错误页面,挂科学上网访问的@(乖)
可以
AADSTS9002313: Invalid request. Request is malformed or invalid.
获取代码提示这个,仓库的代码放进去部署提示错误。。
创建weorker后,worker编辑不了啊,不知道咋回事#(期待)
为什么现在 FODI Deployment Helper 点击获取代码后就白屏了呢?
挂下 t
replayURL这里到底应该填啥呢
redirectUri 24行报错了
现在是不是不好使了, 我看本文链接 你的免费网盘 也一样打不开了!@(乖)
大佬, 我用 FODI Deployment Helper 登录后点击生成代码后网页变为空白, 请问如何解决
浏览器: 版本 101.0.4951.41(正式版本) (64 位)
挂t子就行了
Hello Logi. first of thank for beautiful site. getting Error 1101 while deploy on cloudflare
please help
不會寫中文
Thank you for your love but I am too busy to help you. You can try to translate the webpage to your native language.
已经成功安装,膜拜大佬!
大佬想问一下Fodi怎么设置链接能直接指向某个文件夹下的某个文件
请问大佬 Cloudflare网关地址如何查看
最后一张图箭头指的就是
想问一下大佬为啥部署好了之后显示的还是您的demo呢...
根目录底部显示
console.log('FODI DEMO');
worker地址没换对吧
我现在准备重设后端来实现续期,使用部署助手重新获取的代码粘贴进wokers预览会报错,控制台报错:
```
worker.js:177 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'length')
at fetchFiles (worker.js:177)
at async handleRequest (worker.js:58)
fetchFiles @ worker.js:177
Promise.then (async)
(anonymous) @ worker.js:16
Uncaught (in response) TypeError: Cannot read properties of undefined (reading 'length')
```
请问这个如何解决呢?
抱歉打扰~我选错了公开文件夹@(小乖),感谢大佬,体验很流畅。#(赞一个)
为啥我的到了FODI Deployment Helper登录那块浏览器提示localhost 已拒绝连接,这是怎么回事?
感谢,折腾了一会儿。成功了。@(哈哈)
感谢大佬,已经搭建成功,请问大佬有更新吗,其他都挺好,就是查看图片要一张张查看一张张关闭,是否可以添加个上一张下一张的切换按钮或者是缩略图。
我想自定id,在获取代码时候提示我需要单页面程序才能进行,换了后又提示没有设置回复url,不能登录,要怎么办@(笑尿)
那就设啊
我设置了回复url成单页面回复,但是点前往登录时候出错了,又提示没有设置回复url
注册web应用https://docs.microsoft.com/zh-cn/azure/active-directory/develop/scenario-web-app-sign-user-app-registration
完美可用,請問能嫖 office 365 開發者嗎?
https://logi.im/script/permanently-keeping-an-office-e5-account.html
大佬你好,我部署搭建好了。
直接浏览器下载没有问题,但是通过其他网页程序调用的时候出现了跨域错误。具体错误提示如下:
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脚本中添加允许跨域请求,请问大佬该怎么处理啊?