用腾讯云云函数部署FODI—-一款 OneDrive 秒级列表程序

FODI,Fast OneDrive Index 的缩写,意为 OneDrive 快速列表,是一个比较不错的 OneDrive 列表程序。相较于其他程序,此版列表速度极快,且无需服务器,部署极为简单,当然,除此之外都是缺点。

演示地址

https://scf.wangfuchao.com/

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

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

在此网址中选择你的OneDrive版本,点击前往登录

这时候出来一个网页,如下所示,复制他的地址栏,回到https://logi.im/fodi/get-code/,把复制的地址粘贴到对应的位置.

然后在点击获取代码,就可以看到你的refresh_token以及各项信息了.

填写 refresh_token

下载并解压 FODI 源码(国内下载点这里),随后进入文件夹,用记事本打开 back-end-py/main/api/fodi.py,将上一步得到的 refresh_token 粘贴进,下图所示的 ONEDRIVE_REFRESH_TOKEN 对应的双引号之间。

如需设置网盘展示的根目录,则填写 EXPOSE_PATH 变量,如 /媒体/电影,全盘展示请留空。填写完毕后注意 保存

注意事项如下:

“””
IS_CN: 如果为世纪互联版本,请将 0 改为 1
EXPOSE_PATH:暴露路径,如全盘展示请留空,否则按 ‘/媒体/音乐’ 的格式填写
ONEDRIVE_REFRESHTOKEN: refresh_token
“””

此外,别忘记把获取token那一步里面获得的信息和fodi.py比对,把对应位置的变量填上去.

创建函数服务

以浏览器 隐身模式 登录 腾讯云 SCF 控制台(在此之前要完成腾讯云 实名认证),点击左侧菜单栏的 函数服务,接着点击顶栏的地区选择下拉框,选择 香港或新加坡,因为国外访问 OneDrive 较快(如果你是世纪互联版本则可以选择国内的地区)。接着点击蓝色的 新建 按钮,创建函数。

随后在新建函数页面填写 函数名称,名字随意;运行环境 选择 Python3.6创建方式 选择 模板函数;选择 helloworld 模板,最后点击最下方的 下一步。进入 ② 函数配置 页面后不做任何修改,直接点击 完成。(下面这张是之前的老图,与描述不符,不要照搬)

上传函数代码

点击 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 变量是 站点名称,可以随意修改。IS_CF改成false

填写完毕后点击靠近页面最下方的 Commit changes

点击靠近页面右上角的 Settings,将 Repository name 改成 你的 Github 用户名.github.io,随后点击 Rename

下拉该页面,找到 Github Pages,将 Source 下拉框的值改成 master branch,如果没有则无需修改。

现在,就可以通过 你的 Github 用户名.github.io 访问网盘了。

一些疑问的解答如下

我的 github 已经用来做了个人网站了,占用现在的 用户名.github.io,这要怎么调整?

答:把 index.html 放子目录,比如放 onedrive 目录下,则可通过 name.github.io/onedrive/ 访问

通过自己的服务器或者虚拟主机部署前端.

对于自己有很多闲置vps的人,或者随便找一个虚拟主机空间就可以部署.

同样下载这个html文件:https://kilmu.lanzous.com/isjqQgysaeh

跟github部署时一样,把html的对应信息修改成你自己的.

将此文件丢到你创建的站点文件夹里就可以了.

加密文件夹

在某个文件夹下添加 .password 文件,里面写入密码,即可加密该文件夹。注意文件必须以 UTF8NoBOM 编码,且密码前后不能有空格或空行,Windows 下可通过以下方式生成:

在待加密文件夹下按住 Shift 键的同时,鼠标右击文件夹空白处,选择 在此处打开 Powershell 窗口(S),接着执行以下命令,其中 1234 便是密码。

'1234' | Out-File -FilePath .password -Encoding ascii -NoNewline

文章转载至:logi的博客:https://logi.im/front-end/scf-fodi.html并对其步骤做了一些补充,对其过旧版本内容做了更新.

© 版权声明
THE END
喜欢就支持以下吧
点赞0赞赏
分享
评论 抢沙发

请登录后发表评论