MENU

FODI,一款 OneDrive 秒级列表程序

2019 年 09 月 20 日 • 阅读: 15324 • 前端

腾讯云停止维护,请部署 Cloudflare 版

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 元的出流量费用,完全可以接受(目前不会收取)。

@YL51PJT6NML6PZW{TAI.png

获取 refresh_token

进入 该网址世纪互联版点我),点击其中的 Get a refresh_token,在打开的微软账号登录页面中,填写你的 OneDrive 账号和密码,完成登录。

5}R<code>T]W</code>_6)TC%RBYPYG8UV.png

稍等片刻页面将返回 refresh_token,复制它备用。

C6QSEL5POOL75U

填写 refresh_token

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

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

UUU{L_%MUDV1I}YSTPXZ2.png

创建函数服务

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

create_a_function

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

GX<code>VWO~RYU4QSIHM</code>EE_{PG.png

上传函数代码

点击 SCF 函数代码 面板,将 提交方法下拉框 的值改为 本地上传文件夹。点击 上传,选择 解压文件夹内的 back-end-py,待上传完毕后点击 保存。注意,上传的是 back-end-py 文件夹,不是整个项目。

D5OFS6O`X7}$VW)B3$UTQA.png

添加触发方式

进入函数服务的 触发方式 面板,点击 添加触发方式。选择触发方式下拉框中的 API网关触发器,勾选下方的 启用集成响应,点击 保存

SC6P6_()$O$FK7_IB_S3(}4.png

稍等片刻,下方会出现一个 访问路径,点击打开它。

2UV{Q5H@V13S956@IWG7`2.png

片刻,你将看到如下 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

YSG)}(}WF$V6(I8Z(RF7FK.png

点击靠近 右上角铅笔 按钮,编辑该文件。

fafdafdafQA.png

将你的 函数 API 网关访问路径 填写到 index.htmlSCF_GATEWAY 变量对应的引号中。SITE_NAME 变量是 站点名称,可以随意修改。

%{$U69~_}~DAL0($(U9@D`9.png

abc

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

`56PL$O1D}(V2P@4WR%P6B.png

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

@(S16VV$)48~O8MHD6KYB5D.png

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

}`R6~2N@)LINVXYJ5LEP59.png

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

加密文件夹

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

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

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

最后,如果你觉得这个项目还行,请到 Github 为我加颗星。

TG 大佬群 QQ 大佬群 QQ 追番群

最后编辑于: 2020 年 09 月 04 日
返回文章列表 文章二维码
本页链接的二维码
打赏二维码
添加新评论

已有 138 条评论
  1. 风缘绝色 风缘绝色     Windows 10 /    Google Chrome

    AADSTS7000222:提供的客户端密钥已过期。请访问Azure门户为您的应用创建新密钥,或考虑使用证书凭据来提高安全性

    1. LOGI LOGI     Windows 10 /    Google Chrome

      @风缘绝色统一回复,按照该链接指引获取后端代码
      https://logi.im/fodi/get-code/

  2. chanqi chanqi     Windows 10 /    Google Chrome

    懂了懂了 谢谢大佬 我知道怎么回事了

  3. chanqi chanqi     Windows 10 /    Google Chrome

    大佬,我部署完了 打开链接有密码是怎么回事

  4. 暮城 暮城     Windows 10 /    Google Chrome

    请问有可以部署在云服务器得教程么?

  5. 暮城 暮城     Windows 10 /    Google Chrome

    大佬,这个是什么原因呢?
    没有权限进行此操作,请修改后重试。([TencentCloudSDKError] Code=InternalError.GetRoleError, Message=[QC_STS] role not exist, RequestId=5f1f8865-e798-4c2d-98ec-ece0efb1d3ee)

    @(吐舌)

    1. LOGI LOGI     Windows 10 /    Google Chrome

      @暮城进入云函数概览页面,根据提示授权

    2. 暮城 暮城     Windows 10 /    Google Chrome

      @LOGI好的,感谢,我没用腾讯云了,现直接套用CF,然后前端部署在自己服务器,已经完成了,但是文件夹size显示为0KB,这个是什么原因呢?

      链接:https://pan.mcheng.cn/

  6. owo owo     Windows 10 /    Google Chrome

    可以添加pdf预览功能吗?

    1. LOGI LOGI     Windows 10 /    Google Chrome

      @owo等等再说

  7. 救我 救我     Windows 10 /    Google Chrome

    freshtoken没了

  8. 救我 救我     Windows 10 /    Google Chrome

    获取freshtoken的网址无效了了www,求解救啊www

    1. LOGI LOGI     Windows 7 /    Google Chrome

      @救我我能打开,有问题加群

  9. Lemn Lemn     Windows 7 /    FireFox

    获取不了token404找不到页面

    1. 救我 救我     Windows 10 /    Google Chrome

      @Lemn是的www

  10. code code     Windows 10 /    Google Chrome

    博主你好,我想问下这个文件夹的读取速度是由文件夹大小决定还是文件大小决定,我有一个70G的文件夹可以秒开,但是里面的文件加再打开就要读取很久几分钟测i能出来文件,是哪里的问题呢?最后一级文件夹里的文件是jpg和skp格式的文件

  11. Coda Coda     Windows 7 /    Google Chrome

    博主你好,请问贵站demo里文件夹下方的注释要怎么用呢,是要把markdown文件放在对应的文件夹中吗?

    1. LOGI LOGI     Windows 10 /    Google Chrome

      @Coda是的,命名为 README.md

  12. Mimi Mimi     Windows 10 /    Google Chrome

    博主
    我有2个网盘 想展示
    github 里面怎么设置?
    只能使用2个账号吗?

    1. LOGI LOGI     Windows 10 /    Google Chrome

      @Mimi部署 2 个后端,前端 index.html 也用两份,放到不同文件夹。比如 /od1/index.html 用 name.github.io/od1/ 访问;/od2/index.html 用 name.github.io/od2/ 访问

    2. Mimi Mimi     Windows 10 /    Google Chrome

      @LOGI怎么创建啊
      小白比较迷茫

    3. LOGI LOGI     Windows 10 /    Google Chrome

      @Mimi在你 github 仓库创建两个文件夹,每个里都放一份 index.html。怎么操作 github 自己搜索下

    4. Mimi Mimi     Windows 10 /    Google Chrome

      @LOGIcreate new file---A/----index.html
      这样就可以 创建一个A 文件
      只要把代码放到到edit new file 下面就OK 啦

  13. meichuan meichuan     Windows 10 /    Google Chrome

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

    1. LOGI LOGI     Windows 10 /    Google Chrome

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

  14. WuZhengqiang WuZhengqiang     Windows 10 /    Google Chrome

    感谢答主,你的文章帮助很大。我在使用中遇到了问题。劳驾。

    获取 refresh_token
    进入 该网址(世纪互联版点我),
    使用世纪互联版提示:系统内没有 xxxxxx。请务必键入正确的域。什么原因如何解决呢?

    1. LOGI LOGI     Windows 10 /    Google Chrome

      @WuZhengqiang有可能是账号无权限

  15. 久治不愈 久治不愈     Windows 7 /    Google Chrome

    Github 仓库的index文件编辑不了

    1. LOGI LOGI     Windows 10 /    Google Chrome

      @久治不愈登录自己账号编辑你的,不是我的

  16. elle elle     Windows 10 /    Google Chrome

    加密文件夹好像不用那么麻烦,直接新建个txt文件,把密码放在文件里面,在重命名文件(包括后缀)改成.password,我就这样使用的

  17. krau krau     Windows 10 /    Google Chrome

    大佬,照你的方法部署好后,打开前端是空白,可以帮我看看是怎么回事吗
    https://krau.top/onedrive/
    @(委屈)

    1. LOGI LOGI     Windows 10 /    Google Chrome

      @krau前端 HTML 里填错了,照着文章图片填

    2. krau krau     Windows 10 /    Google Chrome

      @LOGI好吧,我再检查检查orz

    3. elle elle     Windows 10 /    Google Chrome

      @krau为什么不把前端放在cloudflare里面?这样速度应该会比github快,只需加几行代码,就能将前端部署在cloudflare workers,我还做了个教程,教程地址:https://blog.csdn.net/qq_38243612/article/details/105352680,如果有侵权的内容,请联系我删除。希望作者大佬能出个只需部署在workers就能显示多个网盘的版本。另一个大佬的OneManager-php项目支持了多网盘,地址:https://github.com/qkqpttgf/OneManager-php,就是不像FODI支持cloudflare

  18. nnnn nnnn     Windows 10 /    Google Chrome

    大佬,用你的方法成功部署了onedrive列表,感谢!请问下这个方法能够部署google drive吗?要是能就太好了,onedrive资源共享/转存实在太不方便了。@(哈哈)

    1. LOGI LOGI     Windows 10 /    Google Chrome

      @nnnn感谢支持,google drive 可以用 donwa 大佬的项目呢
      https://github.com/donwa/goindex

    2. nnnn nnnn     Windows 10 /    Google Chrome

      @LOGI多谢!Goindex我用过,可惜在国内访问有点慢,不如你这个快。

  19. zeaslity zeaslity     Windows 10 /    Google Chrome

    你好!
    请问用在腾讯云SCF的这套代码,可以直接运行于AWS Lambda吗?

    感觉Serverless是不是只要运行环境相同就可以了呢@(太开心)

    1. LOGI LOGI     Windows 10 /    Google Chrome

      @zeaslity虽然都是 Serverless,每家的入口,API 都不同,不能直接运行

  20. Weifeng Weifeng     Windows 10 /    Google Chrome

    大佬,
    Access to XMLHttpRequest at 'https://od-api.weifeng.workers.dev/' from origin 'xxx' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

    1. LOGI LOGI     Windows 10 /    Google Chrome

      @Weifeng前后端 http/https 要一致,不可混用

    2. Weifeng Weifeng     Windows 7 /    Google Chrome

      @LOGI都是https,不知道为什么出这个问题...

    3. LOGI LOGI     Windows 7 /    Google Chrome

      @Weifeng那就是 cf 配置填错了

    4. Weifeng Weifeng     Windows 10 /    Google Chrome

      @LOGI对,现在好了,谢谢大佬

0:00