FODI,Fast OneDrive Index 的缩写,意为 OneDrive 快速列表,是我自用的一版 OneDrive 列表程序。相较于其他程序,此版列表速度极快,且无需服务器,部署极为简单,当然,除此之外都是缺点。
演示地址
SCF 简介
腾讯云云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码,是实时文件处理和数据处理等场景下理想的计算平台。您只需使用 SCF 平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。
无服务器(Serverless)不是表示没有服务器,而表示当您在使用 Serverless 时,您无需关心底层资源,也无需登录服务器和优化服务器,只需关注最核心的代码片段,即可跳过复杂的、繁琐的基本工作。核心的代码片段完全由事件或者请求触发,平台根据请求自动平行调整服务资源。Serverless 拥有近乎无限的扩容能力,空闲时,不运行任何资源。代码运行无状态,可以轻易实现快速迭代、极速部署。
腾讯云 SCF 目前仍在 公测 阶段,所有用户可免费使用,结束日期待定。公测结束后,每月仍可享受足量的 免费资源使用量和免费调用次数,但收取 外网出流量
费用。
资源类型 | 每月免费额度 |
---|---|
资源使用量 | 40 万 GBs |
调用次数 | 100 万次 |
所谓外网出流量,即程序通过 SCF 访问外部网络的流量,对于本程序即请求微软 API 的流量,每次调用从几 B 到几 KB 不等;文件上传下载直接与微软交互,不经过 SCF。
下图(老图可能与描述不符)是我一天的使用量,大概调用了 10000 次,如果是 30 天就是 30 万次,还不到免费额度的 1/3。资源使用量 1000 GBs,30 天就是 3 万 GBs,远低于 40 万 GBs。外网出流量 0.05G ,一个月大概是 1.5 G,按照 正式收费标准 0.8 元/G,每月要支付 1.2 元的出流量费用,完全可以接受(目前不会收取)。
获取 refresh_token
进入 该网址(世纪互联版点我),点击其中的 Get a refresh_token
,在打开的微软账号登录页面中,填写你的 OneDrive 账号和密码
,完成登录。
T]W\_6)TC%RBYPYG8UV.png" title="5}RT]W
\_6)TC%RBYPYG8UV.png">
稍等片刻页面将返回 refresh_token
,复制它备用。
填写 refresh_token
下载并解压 FODI 源码,随后进入文件夹,用记事本打开 back-end-py/main/api/fodi.py
,将上一步得到的 refresh_token
粘贴进,下图所示的 ONEDRIVE_REFRESH_TOKEN
对应的双引号之间。
如需设置网盘展示的根目录,则填写第 10 行的 EXPOSE_PATH
变量,如 /媒体/电影
,全盘展示请留空。填写完毕后注意 保存
。
创建函数服务
以浏览器 隐身模式
登录 腾讯云 SCF 控制台(在此之前要完成腾讯云 实名认证),点击左侧菜单栏的 函数服务
,接着点击顶栏的地区选择下拉框,选择 香港或新加坡
,因为国外访问 OneDrive 较快。接着点击蓝色的 新建
按钮,创建函数。
随后在新建函数页面填写 函数名称
,名字随意;运行环境
选择 Python3.6
;创建方式
选择 模板函数
;选择 helloworld
模板,最后点击最下方的 下一步
。进入 ② 函数配置
页面后不做任何修改,直接点击 完成
。(下面这张是之前的老图,与描述不符,不要照搬)
VWO~RYU4QSIHMEE_{PG.png" title="GXVWO~RYU4QSIHM
EE_{PG.png">
上传函数代码
点击 SCF 函数代码
面板,将 提交方法下拉框
的值改为 本地上传文件夹
。点击 上传
,选择 解压文件夹内的 back-end-py
,待上传完毕后点击 保存
。注意,上传的是 back-end-py
文件夹,不是整个项目。
添加触发方式
进入函数服务的 触发方式
面板,点击 添加触发方式
。选择触发方式下拉框中的 API网关触发器
,勾选下方的 启用集成响应
,点击 保存
。
稍等片刻,下方会出现一个 访问路径
,点击打开它。
片刻,你将看到如下 JSON
数据(部分数据被省略),否则必须重新上传。
{
"code": -1,
"error": "path error.",
"examples": [
".../ciba/",
".../proxy/",
".../dnspod/",
".../wechat-step/",
".../lanzous/",
".../cloudmusic/",
".../aes/",
".../qr/",
".../fodi/"
]
}
通过 Github Pages 部署前端
前端仅是一个 HTML 文件,可放到任意静态服务器,此处通过 Github Pages 部署,部署完成后可通过 username.github.io
打开你的网盘。
注册并登录 Github,随后打开 该仓库,点击靠近右上角的 Fork
。稍等片刻,打开页面中部的 index.html
。
点击靠近 右上角
的 铅笔
按钮,编辑该文件。
将你的 函数 API 网关访问路径
填写到 index.html
的 SCF_GATEWAY
变量对应的引号中。SITE_NAME
变量是 站点名称
,可以随意修改。
填写完毕后点击靠近页面最下方的 Commit changes
。
点击靠近页面右上角的 Settings
,将 Repository name
改成 你的 Github 用户名.github.io
,随后点击 Rename
。
下拉该页面,找到 Github Pages
,将 Source
下拉框的值改成 master branch
,如果没有则无需修改。
现在,就可以通过 你的 Github 用户名.github.io
访问网盘了。
加密文件夹
在某个文件夹下添加 .password
文件,里面写入密码,即可加密该文件夹。注意文件必须以 UTF8NoBOM
编码,且密码前后不能有空格或空行,Windows 下可通过以下方式生成:
在待加密文件夹下按住 Shift
键的同时,鼠标右击文件夹空白处,选择 在此处打开 Powershell 窗口(S)
,接着执行以下命令,其中 1234
便是密码。
'1234' | Out-File -FilePath .password -Encoding ascii -NoNewline
最后,如果你觉得这个项目还行,请到 Github 为我加颗星。
如有问题请在下方留言,文章转载请注明出处,详细交流请加下方群组!请大佬不要屏蔽文中广告,因为它将帮我分担服务器开支,如果能帮忙点击我将万分感谢。
cf部署后端,http头发送后能看到文件列表,前端用github page部署后,显示Loading……,之后Loading字样消失,文件没挂载出来,求指导
很多人回调地址填在了注释里,应该填在 window.GLOBAL_CONFIG 里,检查是不是这个原因
没有,我改的是第十行window.GLOBAL_CONFIG = {的下面,但是我是照着项目例子写的,是不是要在//前面把https:补齐?
不要,你f12看控制台报错,不懂加文末群组
因为pages.dev域名被墙了
大佬这是什么意思的 我和层主出现了同样的问题
o,可以了,https://java.rawchen.com/onedrive/authorize ,不过貌似速度没有变快,以前都有2m/s,现在1-200k,想搞个世纪互联,又怕不稳 又 贵@(笑尿)
在不,你的myqcloud.com release scf_onedrive_filelistor用不了咯
腾讯云版不维护啦
哦,找错啦,我就说怎么点不开,不知道为啥,隔了几个月要刷新token
想问个问题哈,我用springBoot中OA2写了callback获取token登录实现,出现:
抱歉,登录时遇到问题。
AADSTS50011: The reply URL specified in the request does not match the reply URLs configured for the application: '09939809-c617-43c8-a220-a93c1513c5d4'.
(client写死的),为啥嘞,你试试http://rawchen.com:9999/onedrive/authorize
把 callback 地址设置到应用里,看文档https://docs.microsoft.com/zh-cn/azure/active-directory/develop/scenario-web-app-sign-user-app-registration?tabs=aspnetcore
如果是别人的 client_id 和 client_secret 是没法更改的
现在可以自动刷新 token 了,阅读链接帖子开头说明https://logi.im/back-end/fodi-on-cloudflare.html
service-36wivxsc-1256127833.ap-hongkong.apigateway.myqcloud.com 意外终止了连接
博主 按你的操作 在GitHub 上 什么都没显示
https://jack-roc.github.io/blog/
可以帮忙看下吗
你并没有部署我的后端
导航栏点击 三角箭头 能不展开, 不能折叠
AADSTS7000222:提供的客户端密钥已过期。请访问Azure门户为您的应用创建新密钥,或考虑使用证书凭据来提高安全性
统一回复,按照该链接指引获取后端代码https://logi.im/fodi/get-code/
懂了懂了 谢谢大佬 我知道怎么回事了
大佬,我部署完了 打开链接有密码是怎么回事
请问有可以部署在云服务器得教程么?
大佬,这个是什么原因呢?
没有权限进行此操作,请修改后重试。([TencentCloudSDKError] Code=InternalError.GetRoleError, Message=[QC_STS] role not exist, RequestId=5f1f8865-e798-4c2d-98ec-ece0efb1d3ee)
@(吐舌)
进入云函数概览页面,根据提示授权
好的,感谢,我没用腾讯云了,现直接套用CF,然后前端部署在自己服务器,已经完成了,但是文件夹size显示为0KB,这个是什么原因呢?
链接:https://pan.mcheng.cn/
可以添加pdf预览功能吗?
等等再说
freshtoken没了
获取freshtoken的网址无效了了www,求解救啊www
我能打开,有问题加群
获取不了token404找不到页面
是的www
博主你好,我想问下这个文件夹的读取速度是由文件夹大小决定还是文件大小决定,我有一个70G的文件夹可以秒开,但是里面的文件加再打开就要读取很久几分钟测i能出来文件,是哪里的问题呢?最后一级文件夹里的文件是jpg和skp格式的文件
博主你好,请问贵站demo里文件夹下方的注释要怎么用呢,是要把markdown文件放在对应的文件夹中吗?
是的,命名为 README.md
博主
我有2个网盘 想展示
github 里面怎么设置?
只能使用2个账号吗?
部署 2 个后端,前端 index.html 也用两份,放到不同文件夹。比如 /od1/index.html 用 name.github.io/od1/ 访问;/od2/index.html 用 name.github.io/od2/ 访问
怎么创建啊小白比较迷茫
在你 github 仓库创建两个文件夹,每个里都放一份 index.html。怎么操作 github 自己搜索下
create new file---A/----index.html这样就可以 创建一个A 文件
只要把代码放到到edit new file 下面就OK 啦
我的github已经用来做了个人网站了,占用现在的 用户名.github.io,这要怎么调整?
把 index.html 放子目录,比如放 onedrive 目录下,则可通过 name.github.io/onedrive/ 访问
感谢答主,你的文章帮助很大。我在使用中遇到了问题。劳驾。
获取 refresh_token
进入 该网址(世纪互联版点我),
使用世纪互联版提示:系统内没有 xxxxxx。请务必键入正确的域。什么原因如何解决呢?
有可能是账号无权限