MENU

在 Cloudflare 部署 FODI 后端

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

之前写过一个基于腾讯云 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...

已有 112 条评论
  1. iceyu iceyu   Mac OS X 10.15.3  Google Chrome 79.0.3945.117

    大佬,这个后端是以什么方式呈现? 我的意思就是我能放到其他的地方吗?比如我自己的服务器。 我感觉放到CF打开的速度有点慢。。谢谢回答。

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 80.0.3987.116

      @iceyu无法直接跑,如果你会编程可以自己改改,或者用 oneindex 等

    2. iceyu iceyu   Mac OS X 10.15.3  Google Chrome 79.0.3945.117

      @LOGIoneindex 会出现500错误。无法解决。我换了好几个魔改版本,都会出现500.

  2. sey sey   Mac OS X 10.15.2  Google Chrome 80.0.3987.106

    最终是空白呀,没有前端的时候访问works的网址,可以进去,乱码已经可以找到自己的文件名了,前端做好之后github的网址进去就是空白,怎么解决呢

    1. LOGI LOGI   Windows 7 x64 Edition  Google Chrome 79.0.3945.130

      @sey如果用 github 部署,后端地址必须以 https 开头

    2. sey sey   Mac OS X 10.15.2  Google Chrome 80.0.3987.106

      @sey不用回复啦,搞定了谢谢,请问这样会不会不安全,别人知道了我的地址怎么办

    3. sey sey   Mac OS X 10.15.2  Google Chrome 80.0.3987.106

      @LOGI还有下载和预览的速度好慢好慢牙

    4. LOGI LOGI   Windows 7 x64 Edition  Google Chrome 79.0.3945.130

      @sey下个版本加入 cf 反代,可能会提升速度

    5. LOGI LOGI   Windows 7 x64 Edition  Google Chrome 79.0.3945.130

      @sey不让别人看,直接加密根目录

    6. sey sey   Mac OS X 10.15.2  Google Chrome 80.0.3987.106

      @LOGI我看了你写的密码设置那一段,小白有点懵,我是macos系统怎么办呢,或者有没有简单点的方法

    7. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 80.0.3987.106

      @sey就是在目录添加一个 .password 文件,然后打开文件写上密码保存

  3. Sssy Sssy   Windows 10 x64 Edition  Google Chrome 79.0.3945.130

    你好,我想把文件直链套个cloudflare,我修改直链后测试可以跑满速,怎么把返回的直链前面的域名修改啊?

    1. Sssy Sssy   Windows 10 x64 Edition  Google Chrome 79.0.3945.130

      @Sssy除了配置fodi又用了一个worker,用的Workers-Proxy设置的反代,把链接前面的xxxx.sharepoint.com改了就行了@(乖)

    2. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 80.0.3987.100

      @Sssy下个版本会加入反代功能,不过要等一段时间

    3. Sssy Sssy   Windows 10 x64 Edition  Google Chrome 79.0.3945.130

      @LOGI@(哈哈) 我就是想问问怎么把返回的直链那串字符串改了

    4. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 80.0.3987.100

      @Sssy后端 183 行,改成 url: ‘反代地址’ + file['@microsoft.graph.downloadUrl']

    5. HE-SB HE-SB   Windows 10 x64 Edition  Firefox 73.0

      @Sssy大佬可以说一下反代直链的WorkersProxy怎么设置的吗,我设置的反代 `xxx.sharepoint.com` ,但是会出现fodi目录点不动的问题,修改为反代 `sharepoint.com` ,FODI倒是正常了,但是点击下载的链接还是直连,并没有反代 @(乖)

  4. nike nike   Windows 10 x64 Edition  Google Chrome 80.0.3987.87

    cloudflare,弄好了可以美化吗?进去太单调了

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 80.0.3987.87

      @nike自己美化吧,https://www.imooc.com/learn/33

  5. nike nike   Windows 10 x64 Edition  Google Chrome 80.0.3987.87

    楼主,试了两边了,总是1101错误,这是怎么了。对OneDrive有什么要求吗,我刚申请了一个新的OneDrive,里面没东西

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 80.0.3987.87

      @nike把前端部署好再检查,另外传个文件进去看看

    2. 郭   Windows 10 x64 Edition  Microsoft Edge 18.18362

      @LOGI腾讯云那边,提示:
      操作未授权 ([TencentCloudSDKError] Code=InternalError.GetRoleError, Message=[QC_STS] role not exist, Requ
      腾讯云第一次使用,函数配置,运行角色要不要添加一个,默认的是没有角色

    3. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 80.0.3987.87

      @郭腾讯云版本有 bug,不准备维护了,转 cloudflare 吧

  6. Flash Flash   Windows 10 x64 Edition  Google Chrome 79.0.3945.117

    前后端都部署完了 手机端可以显示 pc显示不了怎么办 可以ping通

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 80.0.3987.87

      @Flash地址发一下看看

  7. yan yan   Windows 10 x64 Edition  Google Chrome 77.0.3865.90

    显示异常:
    {"parent":"/","files":[{"name":"E NAN GAO ZHONG","size":85184683,"time":"2019-12-12T15:09:49Z"},{"name":"media files","size":872639663,"time":"2019-12-15T06:44:20Z"},{"name":"tools","size":19591323,"time":"2019-12-15T05:43:41Z"},{"name":"picture","size":104406441,"time":"2019-12-12T14:19:38Z"},{"name":"BML2018.mp4","size":5505194768,"time":"2019-08-22T17:58:28Z","url":"https://wjyangtz-my.sharepoint.com/personal/csfx_moelty_cn/_layouts/15/download.aspx?UniqueId=8d8df17d-26fb-4ea7-b365-bb0f48e118df&Translate=false&tempauth=eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTBmZjEtY2UwMC0wMDAwMDAwMDAwMDAvd2p5YW5ndHotbXkuc2hhcmVwb2ludC5jb21AYjg5NGU1YzQtNmExZS00MmE1LWJkOTItMWZhZDQ1NGI1OWQ2IiwiaXNzIjoiMDAwMDAwMDMtMDAwMC0wZmYxLWNlMDAtMDAwMDAwMDAwMDAwIiwibmJmIjoiMTU4MDU0NDQwNyIsImV4cCI6IjE1ODA1NDgwMDciLCJlbmRwb2ludHVybCI6Ijk5L2JsYkVQSEw4SE5JYUFiMHFFQWNpUjhZMVNybEVLSndLaVFLRys4a2c9IiwiZW5kcG9pbnR1cmxMZW5ndGgiOiIxNDYiLCJpc2xvb3BiYWNrIjoiVHJ1ZSIsImNpZCI6Ik1XTmtPVGczTTJRdE1UUmxNQzAwWm1Oa0xUaGlPRGt0TldKbFpEYzFZVGczT0RZMiIsInZlciI6Imhhc2hlZHByb29mdG9rZW4iLCJzaXRlaWQiOiJZekU1TlRJMU9HTXRORE13TlMwMFpUZzRMVGhtWm1FdE9XVTNZalV5WVdVd01tTmgiLCJhcHBfZGlzcGxheW5hbWUiOiJvbmVfc2NmIiwiYXBwaWQiOiI0ZGEzZTdmMi1iZjZkLTQ2N2MtYWFmMC01NzgwNzhmMGJmN2MiLCJ0aWQiOiJiODk0ZTVjNC02YTFlLTQyYTUtYmQ5Mi0xZmFkNDU0YjU5ZDYiLCJ1cG4iOiJjc2Z4QG1vZWx0eS5jbiIsInB1aWQiOiIxMDAzMjAwMDVCODRBRUI0IiwiY2FjaGVrZXkiOiIwaC5mfG1lbWJlcnNoaXB8MTAwMzIwMDA1Yjg0YWViNEBsaXZlLmNvbSIsInNjcCI6ImFsbGZpbGVzLndyaXRlIiwidHQiOiIyIiwidXNlUGVyc2lzdGVudENvb2tpZSI6bnVsbH0.bktLOVo1ZUtDRTd4TnVKeGduVE9IbklJWmFackFBN1ZDeXpmWktSeTZoaz0&ApiVersion=2.0"},{"name":"pix.mp4","size":3630437,"time":"2019-12-22T15:16:04Z","url":"https://wjyangtz-my.sharepoint.com/personal/csfx_moelty_cn/_layouts/15/download.aspx?UniqueId=3fc73262-2d18-4aee-8ea3-42f9de93ccea&Translate=false&tempauth=eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTBmZjEtY2UwMC0wMDAwMDAwMDAwMDAvd2p5YW5ndHotbXkuc2hhcmVwb2ludC5jb21AYjg5NGU1YzQtNmExZS00MmE1LWJkOTItMWZhZDQ1NGI1OWQ2IiwiaXNzIjoiMDAwMDAwMDMtMDAwMC0wZmYxLWNlMDAtMDAwMDAwMDAwMDAwIiwibmJmIjoiMTU4MDU0NDQwNyIsImV4cCI6IjE1ODA1NDgwMDciLCJlbmRwb2ludHVybCI6IitqYURXd09yK08yRWFrMFlvQUw2MWlLb2ZGUDR4WXNMa1JTY3l1WDJQRzA9IiwiZW5kcG9pbnR1cmxMZW5ndGgiOiIxNDYiLCJpc2xvb3BiYWNrIjoiVHJ1ZSIsImNpZCI6Ik1XTmtPVGczTTJRdE1UUmxNQzAwWm1Oa0xUaGlPRGt0TldKbFpEYzFZVGczT0RZMiIsInZlciI6Imhhc2hlZHByb29mdG9rZW4iLCJzaXRlaWQiOiJZekU1TlRJMU9HTXRORE13TlMwMFpUZzRMVGhtWm1FdE9XVTNZalV5WVdVd01tTmgiLCJhcHBfZGlzcGxheW5hbWUiOiJvbmVfc2NmIiwiYXBwaWQiOiI0ZGEzZTdmMi1iZjZkLTQ2N2MtYWFmMC01NzgwNzhmMGJmN2MiLCJ0aWQiOiJiODk0ZTVjNC02YTFlLTQyYTUtYmQ5Mi0xZmFkNDU0YjU5ZDYiLCJ1cG4iOiJjc2Z4QG1vZWx0eS5jbiIsInB1aWQiOiIxMDAzMjAwMDVCODRBRUI0IiwiY2FjaGVrZXkiOiIwaC5mfG1lbWJlcnNoaXB8MTAwMzIwMDA1Yjg0YWViNEBsaXZlLmNvbSIsInNjcCI6ImFsbGZpbGVzLndyaXRlIiwidHQiOiIyIiwidXNlUGVyc2lzdGVudENvb2tpZSI6bnVsbH0.c3Q2ZlVrNko3NEl0SGRwTnZBTVYzbnczMEE3UGI4WmpuaTg0Nm5nc3NxOD0&ApiVersion=2.0"},{"name":"魔幻现实主义 - 维基百科,自由的百科全书.pdf","size":519748,"time":"2019-09-24T05:00:09Z","url":"https://wjyangtz-my.sharepoint.com/personal/csfx_moelty_cn/_layouts/15/download.aspx?UniqueId=df3be879-5be9-4527-99f0-9d4a3c946423&Translate=false&tempauth=eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTBmZjEtY2UwMC0wMDAwMDAwMDAwMDAvd2p5YW5ndHotbXkuc2hhcmVwb2ludC5jb21AYjg5NGU1YzQtNmExZS00MmE1LWJkOTItMWZhZDQ1NGI1OWQ2IiwiaXNzIjoiMDAwMDAwMDMtMDAwMC0wZmYxLWNlMDAtMDAwMDAwMDAwMDAwIiwibmJmIjoiMTU4MDU0NDQwNyIsImV4cCI6IjE1ODA1NDgwMDciLCJlbmRwb2ludHVybCI6IkxjOG10VDFYNHVHREdlcUVRUTdXbENvMlpBc2t0aUlQQnFnNmFSSWNqemc9IiwiZW5kcG9pbnR1cmxMZW5ndGgiOiIxNDYiLCJpc2xvb3BiYWNrIjoiVHJ1ZSIsImNpZCI6Ik1XTmtPVGczTTJRdE1UUmxNQzAwWm1Oa0xUaGlPRGt0TldKbFpEYzFZVGczT0RZMiIsInZlciI6Imhhc2hlZHByb29mdG9rZW4iLCJzaXRlaWQiOiJZekU1TlRJMU9HTXRORE13TlMwMFpUZzRMVGhtWm1FdE9XVTNZalV5WVdVd01tTmgiLCJhcHBfZGlzcGxheW5hbWUiOiJvbmVfc2NmIiwiYXBwaWQiOiI0ZGEzZTdmMi1iZjZkLTQ2N2MtYWFmMC01NzgwNzhmMGJmN2MiLCJ0aWQiOiJiODk0ZTVjNC02YTFlLTQyYTUtYmQ5Mi0xZmFkNDU0YjU5ZDYiLCJ1cG4iOiJjc2Z4QG1vZWx0eS5jbiIsInB1aWQiOiIxMDAzMjAwMDVCODRBRUI0IiwiY2FjaGVrZXkiOiIwaC5mfG1lbWJlcnNoaXB8MTAwMzIwMDA1Yjg0YWViNEBsaXZlLmNvbSIsInNjcCI6ImFsbGZpbGVzLndyaXRlIiwidHQiOiIyIiwidXNlUGVyc2lzdGVudENvb2tpZSI6bnVsbH0.UGRhOGhsNGU5R011VnZMbnhOaDYyOHVmRjBPZkE2N3Fac2NDa3I4c0F3bz0&ApiVersion=2.0"}]}

    1. yan yan   Windows 10 x64 Edition  Google Chrome 77.0.3865.90

      @yan只有文字显示和一些乱码

    2. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 79.0.3945.130

      @yan你没部署前端

  8. luckyjinx luckyjinx   Android 10  Google Chrome 79.0.3945.136

    感谢大佬 一直在找OD for wokers

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 79.0.3945.130

      @luckyjinx感谢支持

  9. walden walden   Windows 10 x64 Edition  Firefox 73.0

    按照教程部署后,只显示根目录,无法进入子目录。请教下楼主

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 79.0.3945.117

      @walden把 index.html 的内容换成最新的,不行就加文末的群组讨论

  10. 欧文斯 欧文斯   Windows 10 x64 Edition  Google Chrome 79.0.3945.88

    引用地址出现直接访问 1101 错误,还有语法高亮好像不是很好用,建议考虑使用 Prism

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 79.0.3945.88

      @欧文斯欢迎大佬

    2. 欧文斯 欧文斯   Windows 10 x64 Edition  Google Chrome 79.0.3945.88

      @LOGI坐等大佬更新@(你懂的)

    3. 欧文斯 欧文斯   Windows 10 x64 Edition  Google Chrome 79.0.3945.88

      @LOGI还有 pdf 预览有计划嘛@(乖)

    4. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 79.0.3945.88

      @欧文斯好像也有现成的库,有时间我加上吧

  11. lixia lixia   Windows 10 x64 Edition  Google Chrome 69.0.3497.100

    (index):449 POST https://sparkling-cloud-d418.6884.workers.dev/ 500
    sendRequest @ (index):449
    fetchFileList @ (index):1197
    document.addEventListener @ (index):1238
    (index):1 Failed to load https://sparkling-cloud-d418.6884.workers.dev/: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://itweiwandege.github.io' is therefore not allowed access. The response had HTTP status code 500.
    (index):430
    {url: "https://sparkling-cloud-d418.6884.workers.dev", data: "?path=%2F&encrypted=&plain=&passwd=undefined", times: 0}
    data: "?path=%2F&encrypted=&plain=&passwd=undefined"
    times: 0
    url: "https://sparkling-cloud-d418.6884.workers.dev"
    __proto__: Object
    这个错误楼主知道吗?

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 79.0.3945.88

      @lixia可能是 refresh_token 填错了

  12. eleven eleven   Mac OS X 10.14.6  Google Chrome 79.0.3945.88

    hi,博主,我按照你的这个教程在Cloudflare部署了,在github pages中也能打开页面,只是只能展示目录,内容不能展示,求助一下,谢谢了

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 79.0.3945.88

      @eleven把 index.html 代码更新到最新

    2. eleven eleven   Mac OS X 10.14.6  Google Chrome 79.0.3945.88

      @LOGI更新过了,还是不行,有个疑问,这块代码需要和网址名称保持一致么?
      【window.GLOBAL_CONFIG.SCF_GATEWAY += '/fodi/';】比如我的SITE_NAME为 'HelloWorld',那对应代码这需要改成window.GLOBAL_CONFIG.SCF_GATEWAY += '/HelloWorld/';吗?

    3. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 79.0.3945.88

      @eleven不需要,不用改

    4. eleven eleven   Mac OS X 10.14.6  Google Chrome 79.0.3945.88

      @LOGIOK,已成功部署,谢谢博主@(爱心)

    5. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 79.0.3945.88

      @eleven::quyin:maimeng::

    6. walden walden   Windows 10 x64 Edition  Firefox 73.0

      @eleven请问你是怎么解决的 我的也是只能看到目录,内容不能展示。谢谢

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

      @waldencloudflare部署用上文的新代码可以解决。https://logi.im/go/aHR0cHM6Ly9naXRodWIuY29tL3ZjaGVja3plbi9GT0RJL2Jsb2IvbWFzdGVyL2JhY2stZW5kLWNmL2luZGV4Lmpz