利用微软 Onedrive API 和腾讯云 SCF 免费搭建个人网盘

SCF 简介

腾讯云云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码,是实时文件处理和数据处理等场景下理想的计算平台。您只需使用 SCF 平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。

无服务器(Serverless)不是表示没有服务器,而表示当您在使用 Serverless 时,您无需关心底层资源,也无需登录服务器和优化服务器,只需关注最核心的代码片段,即可跳过复杂的、繁琐的基本工作。核心的代码片段完全由事件或者请求触发,平台根据请求自动平行调整服务资源。Serverless 拥有近乎无限的扩容能力,空闲时,不运行任何资源。代码运行无状态,可以轻易实现快速迭代、极速部署。

开通 SCF 云函数服务的用户,每月可享受一定量的 免费资源使用量,免费调用次数。每月计费时,会先抵扣免费额度,超出部分再进行后付费结算。

资源类型每月免费额度
资源使用量40 万 GBs
调用次数100 万次

下图是我一天的使用量,大概调用 1000 次,如果是 30 天就是 3 万次。资源使用量 500 GBs,30 天就是 1.5 万 GBs。可见,免费额度完全足够使用。需要说明的是,文件链接地址都是微软服务器,并不经过 SCF。并且,下图是包括网盘在内的 11 个函数的总使用量。

@YL51PJT6NML6PZW{TAI.png

获取 Onedrive 账号

既然是利用 Onedrive,首先要获取一个账号,支持个人、企业和教育版。如果没有可以关注本博客微信公众号,发送想要的前缀和邮箱(接收账号密码)。

创建函数服务

有了账号后就可以创建函数了。登录 腾讯云 SCF 控制台(在此之前要完成腾讯云 实名认证),点击左侧菜单栏的 函数服务,接着点击顶栏的地区选择下拉框,选择 香港,因为大陆区域在绑定域名时需要备案,如果你拥有已备案的域名,则可以选择国内,当然不绑定域名也可以使用。接着点击蓝色的 新建 按钮,创建函数。

create_a_function

随后在新建函数页面填写 函数名称,名字随意;运行环境 选择 Php 7.2创建方式 选择 模板函数;选择 helloworld 模板,最后点击最下方的 下一步。进入 ② 函数配置 页面后不做任何修改,直接点击 完成

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

上传函数代码

下载并解压 Tai7sy 大佬的项目 OneDrive_SCF。随后,进入 SCF 函数代码 面板,将 提交方法下拉框 的值改为 本地上传文件夹,随后点击 上传,选择 解压好的文件夹,最后点击 保存。注意,解压后查看一下是否包含两层文件夹,如果是,上传内层。

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

添加触发方式

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

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

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

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

获取并填写 refresh_token

打开 函数 API 网关访问路径 后,点击其中的 Get a refresh_token,在打开的微软账号登录页面中,填写你的 Onedrive 账号和密码,完成登录。

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

登录完毕后会跳转到 localhost,并提示无法访问此网站。

S(ATUX0T4`F7C75G%QZWW)Q.png

将网址栏的 localhost 替换为 函数 API 网关访问路径 后回车。

CZ46{HC2Q%M4XO(%`07ZXV.png

稍等片刻便会返回 refresh_token,复制它备用。

C6QSEL5POOL75U

进入 SCF 函数代码 面板,选中 index.php,将得到的 refresh_token 粘贴进,下图所示的单引号之间,最后点击靠近左下方的 保存

UUU{L_%MUDV1I}YSTPXZ2.png

配置环境变量

进入 函数配置 面板,点击靠近右上角的 编辑 按钮。

_SP7_T$@DA}LQRVA3SG}44G.png

在新面板中,将 内存 修改为 最大值超时时间 填写 30,随后添加 5 个环境变量,它们的功能如下:

keyvalueintro
sitename站点名称
public_path公开展示的 Onedrive 根路径未绑定自定义域名时使用
private_path公开展示的 Onedrive 根路径绑定了自定义域名时使用
passfile密码文件名称在某目录下添加该文件,里面写入密码即可加密文件夹
admin管理员密码管理员登录后功能更多
1J8I6IJD@2J8AIH8WWQ4KM.png

所有信息填写完毕后点击保存,刷新 函数 API 网关访问路径,即可访问你的 Onedrive 网盘。

_Z_QK7_3G}T}IGT4WZ`{)E.png

自定义域名(可选)

进入函数服务的 触发方式 面板,点击打开 SCF_API_SERVICE

_H1UQ7TU)R54B97VK$S.png

打开服务界面的 自定义域名 面板,点击 新建

47Q4Z)PLOV{AC@AFFIS5.png

在添加域名对话框中,填写你的 域名协议 选择 http,如果你想使用 https,则必须将域名转入腾讯云并申请 SSL 证书,因为 SCF 尚未实现自定义证书上传(故意想让你把域名转过来),所以你看到的 证书下拉框 里是。网络类型勾选 外网

打开你的域名解析服务商控制台,在域名解析列表里添加一条 CNAME 记录,值便是第二行的 外网二级域名。最后点击 提交

YJJC%D4UJJ{M@SJ%(})S.png

http 转 https(可选)

如果你使用了 https,可以通过在 html 头部添加 js 的方式实现 http 跳转 https

复制以下 js 代码,粘贴到 函数代码 面板里的 index.php 文件的 609 行左右,点击靠近左下方的 保存。copy

<script>
  if (location.protocol === "http:") {
    location.href = location.href.replace(/http/, "https");
  }
</script>
}N2UR<code>L5P1$(A{H6VXNN</code>1P.png

使用 Github Pages 缩短长链接(可选)

如果你没有域名和服务器,可以通过 Github Pages 跳转的方式,适当缩短首次访问的路径长度,最终可以通过 username.github.io 打开你的网盘。

注册并登录 Github,随后打开 该仓库,点击靠近右上角的 Fork

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

稍等片刻,打开页面中部的 index.html,将你的 函数 API 网关访问路径 替换到文件中。

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

修改完毕后点击靠近页面最下方的 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 访问网盘了。

演示地址:

http://od.ibloger.cn

本文转自: https://logi.ml/back-end/scf-onedrive-filelistor.html

© 版权声明
THE END
喜欢就支持以下吧
点赞0赞赏
分享
相关推荐
  • 暂无相关文章
评论 抢沙发