MENU

FODI,一款 OneDrive 秒级列表程序

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

腾讯云停止维护,请部署 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<codedata-shadow=T]W\_6)TC%RBYPYG8UV.png" title="5}RT]W\_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<codedata-shadow=VWO~RYU4QSIHMEE_{PG.png" title="GXVWO~RYU4QSIHMEE_{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 大佬群

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

Loading captcha...

已有 156 条评论
  1. ukuq ukuq   Windows 10 x64 Edition  Google Chrome 78.0.3904.97

    发现一个严重的问题需要处理,建议把accesstoken放到后端, 前端暴露出来容易被窃取.
    可以简单参考下onepoint 的处理方式 github.com/ukuq/onepoint

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 78.0.3904.97

      @ukuq这个问题我已考虑到,前端 token 是 aes 加密后的,每个人的加密 key 放在后端且唯一,故别人得到也无法使用

  2. 饭饭 饭饭   Windows 10 x64 Edition  Google Chrome 78.0.3904.87

    牛批 我的下载站要复活了

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 78.0.3904.87

      @饭饭欢迎大佬@(太开心)

  3. Ann Ann   Windows 7 x64 Edition  Google Chrome 77.0.3865.90

    {"errorCode":1,"errorMessage":"user code exception caught","stackTrace":"Cannot read property 'salt' of undefined"}
    打开访问路径后出现这样的报错

    1. LOGI LOGI   Android 9  Google Chrome 77.0.3865.92

      @Ann把所有步骤做完,后端不能单独使用

    2. Ann Ann   Windows 7 x64 Edition  Google Chrome 77.0.3865.90

      @LOGI这个只能放在github吗?coding 可以吗

    3. LOGI LOGI   Android 9  Google Chrome 77.0.3865.92

      @Ann随便哪里

    4. Ann Ann   Windows 7 x64 Edition  Google Chrome 77.0.3865.90

      @LOGI感谢 已经成功了 项目很不错~

    5. LOGI LOGI   Android 9  Google Chrome 77.0.3865.92

      @Ann客气客气

  4. 有间咖啡馆 有间咖啡馆   Windows 10 x64 Edition  Firefox 69.0

    新建函数的配图用的还是之前php模板的,找了半天的错误才发现@(笑尿)

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 77.0.3865.90

      @有间咖啡馆哈哈哈,让你不看文字@(捂嘴笑)

  5. repostone repostone   Windows 8.1 x64 Edition  Google Chrome 63.0.3239.132

    最近总遇到评论多的。

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 77.0.3865.90

      @repostone哈哈哈,欢迎常来#(脸红)

  6. 秒杀 秒杀   Macintosh  Other Browser

    最后这个加密在电脑操作,是在网页上操作吗》?按照你说的操作右键没有Powershell 窗口(S)啊

    1. LOGI LOGI   Android 9  Google Chrome 77.0.3865.92

      @秒杀电脑,这款程序没有后台管理功能

    2. 秒杀 秒杀   Macintosh  Other Browser

      @LOGI哦,你这个方法是单纯针对电脑文件夹的加密呀?

    3. 秒杀 秒杀   Macintosh  Other Browser

      @LOGI大佬,请教一下这篇文章搭建的服务器是不是只能浏览下载,不像“利用微软 OneDrive API 和腾讯云 SCF 免费搭建个人网盘”这篇文章里搭建的还可以管理网盘文件,那这种方式的优势主要体现在哪呢?

    4. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 77.0.3865.90

      @秒杀优势开头说了,快。两篇文章都有演示,你分别点点看看就知道了

    5. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 77.0.3865.90

      @秒杀不是加密电脑文件夹,电脑安装 OneDrive,再通过文件管理器进入 OneDrive 对应目录加密。

  7. Lula Lula   Android 9  WebView 4.0

    什么时候可以支持一下文件夹加密呢?@(你懂的)

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 77.0.3865.90

      @Lula那要看我懒癌能否好转@(滑稽)

    2. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 77.0.3865.90

      @Lula已支持,有生之年系列@(太开心)

    3. Lula Lula   Android 9  WebView 4.0

      @LOGI哇哈哈哈,效率真高

    4. Lula Lula   Android 9  WebView 4.0

      @LOGI刚找了下文章中木有介绍@(汗)
      重新上传新的前端后端吗?
      密码文件是不是.password

    5. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 77.0.3865.90

      @Lula是的,懒得介绍了@(你懂的)

  8. 初夏阳光 初夏阳光   Windows 10 x64 Edition  Google Chrome 77.0.3865.75

    OneDrive:又是你!#(喜极而泣)

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 77.0.3865.90

      @初夏阳光是不是感受到了被支配的恐惧@(酷)

  9. deon deon   Mac OS X 10.15.0  Google Chrome 75.0.3770.100

    大佬,最后一步出问题了,User pages must be built from the master branch. 这是哪一步出问题了啊?谢谢。

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 76.0.3809.132

      @deon最后一张图没有选择 master

    2. deon deon   Mac OS X 10.15.0  Google Chrome 75.0.3770.100

      @LOGI

    3. deon deon   Mac OS X 10.15.0  Google Chrome 75.0.3770.100

      @deonhttps://i.loli.net/2019/09/20/QGZqNMTVwUfpjCR.png
      好像没有地方可以选

    4. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 76.0.3809.132

      @deon可能新号先要开通吧,我用的老号,中间流程是什么我也忘了@(笑尿),贴一下你的仓库地址吧

    5. deon deon   Mac OS X 10.15.0  Google Chrome 75.0.3770.100

      @LOGIhttps://github.com/DeonWinchester/DeonWinchester.github.io

    6. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 76.0.3809.132

      @deon已经成功了哈,直接访问吧
      https://deonwinchester.github.io/

    7. deon deon   Mac OS X 10.15.0  Google Chrome 75.0.3770.100

      @LOGI

    8. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 76.0.3809.132

      @deon我写这个程序的本意就是分享文件(笑),自己看的话为什么不用客户端呢

    9. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 76.0.3809.132

      @deon或者你把 index.html 放到电脑上打开也行@(滑稽)

    10. deon deon   Mac OS X 10.15.0  Google Chrome 75.0.3770.100

      @LOGI懂了!

    11. Mark Mark   Windows 10 x64 Edition  Google Chrome 77.0.3865.90

      @deon我也遇到一样的问题了,请问如何解决的呢

    12. LOGI LOGI   Android 9  Google Chrome 77.0.3865.92

      @Mark直接访问试试

  10. kkk kkk   Windows 10 x64 Edition  Google Chrome 74.0.3729.169

    按照您的步骤一步步操作,在获取并填写 refresh_token这一步中遇到了问题
    “进入 SCF 函数代码 面板,选中 index.js,将得到的 refresh_token 粘贴进,下图所示的 ONEDRIVE_REFRESH_TOKEN 对应的单引号之间。”
    进入 SCF 函数代码面板后没用 index.js,页面和“上传函数代码”前一样,请问该如何解决?

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 76.0.3809.132

      @kkk再上传一遍代码吧,最后要点保存

    2. kkk kkk   Windows 10 x64 Edition  Google Chrome 74.0.3729.169

      @LOGI我保存了还是不行
      这时我录制的gif:https://sm.ms/image/oDBePkE1y2uvUxj

    3. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 76.0.3809.132

      @kkk换个浏览器看看吧,可能是腾讯云的 BUG

    4. kkk kkk   Windows 10 x64 Edition  Google Chrome 74.0.3729.169

      @LOGI谢谢大佬,终于弄好了,之前没显示是被广告过滤插件给屏蔽了

    5. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 76.0.3809.132

      @kkk好吧,之前有个朋友也上传不了,现在终于找到原因了

  11. Smi Smi   Android 9  MIUI Browser 10.9.2

    心动,去试试

  12. Lula Lula   Android 9  WebView 4.0

    沙发@(吐舌)
    收藏了

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 76.0.3809.132

      @Lula眼熟大佬