之前写过一个基于腾讯云 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 为我点颗星。
如有问题请在下方留言,文章转载请注明出处,详细交流请加下方群组!请大佬不要屏蔽文中广告,因为它将帮我分担服务器开支,如果能帮忙点击我将万分感谢。
大佬这个能不能在线看pdf呀
有计划支持
大佬,如果支持PDF就完美了@(玫瑰)
使用“引用”功能时,若路径中有中文则报错
CF报 Error 1101
Worker threw exception
还有就是分享居然是分享文件所在的目录。。希望改成分享文件预览页面
另外希望能支持.head(放到最下面也可以)
很喜欢有左侧栏这种文件目录设计,但是其他onedrive目录程序并没有类似主题。
有可能的话希望能做类似的主题或者持续完善FODI
收到,有时间更
大佬,请问一下部署完之后下载都没有问题,但是网盘里的视频只播放声音没有画面,该咋整呀
FODI部署于Cloudflare上
格式不支持,关键词 x264 aac
大佬,这个后端是以什么方式呈现? 我的意思就是我能放到其他的地方吗?比如我自己的服务器。 我感觉放到CF打开的速度有点慢。。谢谢回答。
无法直接跑,如果你会编程可以自己改改,或者用 oneindex 等
oneindex 会出现500错误。无法解决。我换了好几个魔改版本,都会出现500.
最终是空白呀,没有前端的时候访问works的网址,可以进去,乱码已经可以找到自己的文件名了,前端做好之后github的网址进去就是空白,怎么解决呢
如果用 github 部署,后端地址必须以 https 开头
不用回复啦,搞定了谢谢,请问这样会不会不安全,别人知道了我的地址怎么办
还有下载和预览的速度好慢好慢牙
下个版本加入 cf 反代,可能会提升速度
不让别人看,直接加密根目录
我看了你写的密码设置那一段,小白有点懵,我是macos系统怎么办呢,或者有没有简单点的方法
就是在目录添加一个 .password 文件,然后打开文件写上密码保存
你好,我想把文件直链套个cloudflare,我修改直链后测试可以跑满速,怎么把返回的直链前面的域名修改啊?
除了配置fodi又用了一个worker,用的Workers-Proxy设置的反代,把链接前面的xxxx.sharepoint.com改了就行了@(乖)
下个版本会加入反代功能,不过要等一段时间
@(哈哈) 我就是想问问怎么把返回的直链那串字符串改了
后端 183 行,改成 url: ‘反代地址’ + file['@microsoft.graph.downloadUrl']
大佬可以说一下反代直链的WorkersProxy怎么设置的吗,我设置的反代 `xxx.sharepoint.com` ,但是会出现fodi目录点不动的问题,修改为反代 `sharepoint.com` ,FODI倒是正常了,但是点击下载的链接还是直连,并没有反代 @(乖)
cloudflare,弄好了可以美化吗?进去太单调了
自己美化吧,https://www.imooc.com/learn/33
楼主,试了两边了,总是1101错误,这是怎么了。对OneDrive有什么要求吗,我刚申请了一个新的OneDrive,里面没东西
把前端部署好再检查,另外传个文件进去看看
腾讯云那边,提示:操作未授权 ([TencentCloudSDKError] Code=InternalError.GetRoleError, Message=[QC_STS] role not exist, Requ
腾讯云第一次使用,函数配置,运行角色要不要添加一个,默认的是没有角色
腾讯云版本有 bug,不准备维护了,转 cloudflare 吧
前后端都部署完了 手机端可以显示 pc显示不了怎么办 可以ping通
地址发一下看看
显示异常:
{"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"}]}
只有文字显示和一些乱码
你没部署前端
感谢大佬 一直在找OD for wokers
感谢支持
按照教程部署后,只显示根目录,无法进入子目录。请教下楼主
把 index.html 的内容换成最新的,不行就加文末的群组讨论
引用地址出现直接访问 1101 错误,还有语法高亮好像不是很好用,建议考虑使用 Prism
欢迎大佬
坐等大佬更新@(你懂的)
还有 pdf 预览有计划嘛@(乖)
好像也有现成的库,有时间我加上吧
(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
这个错误楼主知道吗?
可能是 refresh_token 填错了
hi,博主,我按照你的这个教程在Cloudflare部署了,在github pages中也能打开页面,只是只能展示目录,内容不能展示,求助一下,谢谢了
把 index.html 代码更新到最新
更新过了,还是不行,有个疑问,这块代码需要和网址名称保持一致么?【window.GLOBAL_CONFIG.SCF_GATEWAY += '/fodi/';】比如我的SITE_NAME为 'HelloWorld',那对应代码这需要改成window.GLOBAL_CONFIG.SCF_GATEWAY += '/HelloWorld/';吗?
不需要,不用改
OK,已成功部署,谢谢博主@(爱心)
::quyin:maimeng::
请问你是怎么解决的 我的也是只能看到目录,内容不能展示。谢谢
cloudflare部署用上文的新代码可以解决。https://logi.im/go/aHR0cHM6Ly9naXRodWIuY29tL3ZjaGVja3plbi9GT0RJL2Jsb2IvbWFzdGVyL2JhY2stZW5kLWNmL2luZGV4Lmpz