演示地址
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 元的出流量费用,完全可以接受(目前不会收取)。
创建函数服务
登录 腾讯云 SCF 控制台(在此之前要完成腾讯云 实名认证),点击左侧菜单栏的 函数服务
,接着点击顶栏的地区选择下拉框,选择 香港
,因为大陆区域在绑定域名时需要备案,如果你拥有已备案的域名,则可以选择国内,当然不绑定域名也可以使用。接着点击蓝色的 新建
按钮,创建函数。
随后在新建函数页面填写 函数名称
,名字随意;运行环境
选择 Php 7.2
;创建方式
选择 模板函数
;选择 helloworld
模板,最后点击最下方的 下一步
。进入 ② 函数配置
页面后不做任何修改,直接点击 完成
。
VWO~RYU4QSIHMEE_{PG.png" title="GXVWO~RYU4QSIHM
EE_{PG.png">
上传函数代码
下载并解压 OneDrive_SCF。随后,进入 SCF 函数代码
面板,将 提交方法下拉框
的值改为 本地上传文件夹
,随后点击 上传
,选择 解压好的文件夹
,最后点击 保存
。注意,解压后查看一下是否包含两层文件夹,如果是,上传内层。
获取并填写 refresh_token
进入 该网址(世纪互联版点我),点击其中的 Get a refresh_token
,在打开的微软账号登录页面中,填写你的 OneDrive 账号和密码
,完成登录。
T]W\_6)TC%RBYPYG8UV.png" title="5}RT]W
\_6)TC%RBYPYG8UV.png">
稍等片刻页面将返回 refresh_token
,复制它备用。
进入 SCF 函数代码
面板,选中 index.php
,将得到的 refresh_token
粘贴进,下图所示的单引号之间,最后点击靠近左下方的 保存
。
配置环境变量
进入 函数配置
面板,点击靠近右上角的 编辑
按钮。
在新面板中,将 内存
修改为 512M
,当然 64M 也是可以运行的,需要说明的是,内存越大可用的免费时长越少;超时时间
填写 30
,随后添加几个环境变量,它们的功能如下:
名称 | 含义 | 备注 | 示例 |
---|---|---|---|
sitename | 站点名称 | 无 | 我的网盘 |
public_path | 要展示的根路径 | 无 | / |
private_path | 要展示的根路径 | 使用自定义域名时必须设置 | / |
imgup_path | 图床路径 | 其他网页可以引用上传的图片 | /图床 |
passfile | 密码文件名称 | 在某目录下添加该文件,里面写入密码即可加密文件夹 | password.txt |
admin | 管理员密码 | 管理员登录后功能更多 | 1234 |
添加触发方式
进入函数服务的 触发方式
面板,点击 添加触发方式
。选择触发方式下拉框中的 API网关触发器
,勾选下方的 启用集成响应
,点击 保存
。
稍等片刻,下方会出现一个 访问路径
,点击打开它。
出现网盘首页代表安装成功。
自定义域名(可选)
进入函数服务的 触发方式
面板,点击打开 SCF_API_SERVICE
。
打开服务界面的 自定义域名
面板,点击 新建
。
在添加域名对话框中,填写你的 域名
,协议
选择 http
,如果你想使用 https
,则必须在腾讯云 申请或上传 SSL 证书,如果你已经在其他平台申请过推荐直接上传,因为申请一般要等待数小时才能完成。未进行上述操作你看到的 证书下拉框
里将会是无
。网络类型勾选 外网
。选择 自定义路径映射
,添加一条记录,路径为 /
,指向 发布
环境。
打开你的域名解析服务商控制台,在域名解析列表里添加一条 CNAME 记录,值便是图中上方的 外网二级域名
。最后点击 提交
。
进入 管理 API
面板,点击 编辑
。
在 前端配置
面板中,将路径改为 /
,点击下一步。
在 后端配置
中,保证已勾选 启用集成响应
后点击 下一步
。
在 响应结果
面板,将 返回类型
改为 HTML
,点击 完成
。
在弹出的对话框中,点击 前往发布服务
。
在 服务信息
面板,点击靠近 右上角
的 发布
按钮。
在弹出的 发布服务
对话框中,将 发布环境
改为 发布
,备注
随意填写,最后点击 提交
。
现在就可以通过自定义域名访问你的网盘了。
使用 Github Pages 缩短长链接(可选)
如果你没有域名和服务器,可以通过 Github Pages 跳转的方式,适当缩短首次访问的路径长度,最终可以通过 username.github.io
打开你的网盘。
注册并登录 Github,随后打开 该仓库,点击靠近右上角的 Fork
。稍等片刻,打开页面中部的 index.html
。
点击靠近 右上角
的 铅笔
按钮,编辑该文件。
将你的 函数 API 网关访问路径
替换到文件中。
修改完毕后点击靠近页面最下方的 Commit changes
。
点击靠近右上角的 Settings
,将 Repository name
改成 你的 Github 用户名.github.io
,随后点击 Rename
。
下拉该页面,找到 Github Pages
,将 Source
下拉框的值改成 master branch
,如果没有则无需修改。
现在,就可以通过 你的 Github 用户名.github.io
访问网盘了。
功能建议、Bug 反馈,请前往 逸笙大佬主页,也请为他多多加星。
如有问题请在下方留言,文章转载请注明出处,详细交流请加下方群组!请大佬不要屏蔽文中广告,因为它将帮我分担服务器开支,如果能帮忙点击我将万分感谢。
大佬,我index.php是空的,里面什么都没有怎么办
隐身模式(无痕模式)打开浏览器
博主,请问QQ群号多少....
文章末尾的按钮进不去吗
买的网盘忘记密码了怎么办
怎么不保存呢
太久了,又换过手机。。有没有办法,那边改下密码,谢谢,我改密码时候提示我没权限,只能组织机构管理员改
您好,您改过原作者的源码吗?您的ui界面挺好的,可以分享一下您怎么改的吗?
是的,文章提供的版本就是改过的,可以直接安装。至于改的过程可以加群详聊
群号能说一下嘛@(呵呵)
文末就是呀
大佬,能加一个IP访问记录,以及限制IP访问的面板吗,因为不想别人一不小心访问我的网盘。@(呵呵)
可以设密码
可以设置下载密码吗@(太开心)我还没更新,我先更新看下
新版的token只能填在环境变量吗,我这怎么获取不到报错
Error
UnauthorizedOperation.FunctionStatus
Function status Updating is not allowed to do UpdateFunctionConfiguration.
function_name:driver
Region:ap-hongkong
namespace:default
嗯,仅限本文使用的版本
添加触发方式的时候提示操作未授权 ([TencentCloudSDKError] Code=InternalError.GetRoleError, Message=[QC_STS] role not exist, Requ
留下联系方式,我帮你看一下
我找到问题了,现在弄好了,进去时候要去领取!大佬有qq群或者什么群没有。
我把群更新到文章最后了,想加可以加一下。
怎么领取啊
膜拜大佬,按照大佬的教程一次成功:在这里想向大佬请教一个问题:就是我想把网页的logo替换为自己的,应该怎么设置呢
统一回复:如需更改浏览器标签页左上角的小图标,在代码目录放置一个名为 favicon.ico 的图片即可,可使用下面的网页制作。
https://myico.cn
是根目录吗
嗯,跟 index.php 同级
@(小乖)大佬 我设置和你一样不能跳转https
先试试手动加 https 能否访问
统一回复:绑定自定义域名后,如需强制 https,把 index.php 765 行的注释去掉即可。具体操作是删除行首的 ``。该行内容见下图
https://image.suning.cn/uimg/ZR/share_order/157364137664617688.jpg
如果不知道我说的是什么,说明您不需要设置,因为设置与否不会影响正常使用。
感谢大佬。很棒 很厉害
很赞,一次成功。测试中...@(哈哈)
赞赞赞@(捂嘴笑)
域名解析显示是成功的,但是访问还是没有用。
环境变量设置了吗,需要帮助就留下联系方式
自定义域名全都设置和你一样。我的就是不行。白买了个域名
哈哈,说说什么表现,实在不行我加你 QQ
应该是 SSL 证书的问题,你申请一个证书开启 https 就行了,申请步骤见上文
我愿意拜你为师,只要你开出条件,平时喜欢琢磨网络上的一些教程,愿意听从你的指挥。
不敢当@(笑尿)
怎么联系你呀
有什么问题吗
能否留下你的联系方式。
可以留下你的,我加你
搭建好后一直没怎么用过,今天试着上传了一些文件,开始的时候还很正常,但是在下午上传时,文件上传到100%后,又回到百分之八十几或者九十几,就不停地在那里循环上传,但一直不能成功上传,试了几次都是这样,而且收到一封onedrive的邮件说我删除了大量邮件,并提示可以从回收站将文件还原,可事实上我并没有进行删除操作,而且网盘界面也没有回收站这一项。
用客户端上传吧,网页可能不稳定。至于提示删除,是密码泄露了吗@(笑尿)
客户端是在哪里下载?
iOShttps://apps.apple.com/cn/app/skydrive/id477537958?ls=1
macOS
https://go.microsoft.com/fwlink/?linkid=823060
Android
https://www.wandoujia.com/apps/1305965
Windows
https://go.microsoft.com/fwlink/p/?LinkId=248256
Linux
https://rclone.org/downloads/
下载客户端登陆后显示空间已满(5G),可能 是因为这个原因不能上传吧。
嗯嗯,你登陆的是个人账号吧。我的小商店里有 5T 空间的账号,可以看看https://store.logi.ml/
一、购买账号后是需要到腾讯云重新搭建网盘吗,还是可以直接替换之前的个人账号?二、上传的单个文件有没有大小限制?
三、有没有批量下载功能?
四、能不能上传文件夹?
1. 重搭吧,我更新了代码2. 用客户端上传
3. 没有批量下载
4. 用客户端上传
刚在你的店铺购买了5T的账号,但是不能修改个人信息,提示:您的姓名和职务等详细信息可能是由您的 IT 或人力资源部门提供的。如果您想要更新这些详细信息,请联系他们或您的管理员。这个账号会不会哪天被收回去或被人注销呢?
管理员是我不用担心
哦,那就放心了!
我之前用自己的5G账号在腾讯云搭建了一个网盘,昨天又用5T的账号搭建了一个;一、这两个网盘会不会有什么冲突,我的意思是在腾讯云的SCF用同一个腾讯云用户名搭建了两个不同onedrive账号会不会有什么影响?
二、按照你的方法,其中一个在github缩短了网址,因为其中要用到github的用户名,如果我另一个也想缩短网址的话,是不是要重新注册一个github账号才可以?
三、如何删除本地文件而保留云端文件?因为很多文件我上传到网盘之后就会在电脑里删除,但是打开onedrive客户端后又会将文件同步到本地文件夹。
我之前用自己的 5G 账号在腾讯云搭建了一个网盘,昨天又用 5T 的账号搭建了一个;一、这两个网盘会不会有什么冲突,我的意思是在腾讯云的 SCF 用同一个腾讯云用户名搭建了两个不同 onedrive 账号会不会有什么影响?
二、按照你的方法,其中一个在 github 缩短了网址,因为其中要用到 github 的用户名,如果我另一个也想缩短网址的话,是不是要重新注册一个 github 账号才可以?
三、如何删除本地文件而保留云端文件?因为很多文件我上传到网盘之后就会在电脑里删除,但是打开 onedrive 客户端后云端的文件也会被删除。
一、没有冲突
二、不用重新注册 github ,只需建两个仓库,仓库名必须不同。比如第一个叫 1,第一个叫 2,那么就可通过 name.github.io/1,和 name.github.io/2 访问它们
三、右键某个文件,选择【释放空间】,即可
可是我的右键没有释放空间这个选项,在网上搜索了一下很多人也有相同的问题,按照网上的方法也解决不了,大佬有没有什么好的解决方法?
右键本地电脑上存在的文件才有,并且此时 OneDrive 客户端应该是在后台运行的,不能退出。
要是实在找不到,留下 QQ 我加你
登录完毕后无法跳转到 localhost,怎么办;会一直反复跳转
显示这个:
Error
Please set the refresh_token in environments
Get a refresh_token
allow javascript
浏览器地址栏结尾有个红色的感叹号,点击它,选择允许弹出式窗口
localhost 改成 scf 网关地址
去github下载最新版本,现在安装更简单了!
我更新了文章,你可以重新上传代码操作一遍
要是有搜索文件功能就好了
嗯,功能和 bug 反馈可以去作者 github
博主您好,有个问题请教一下。
因为国内下载onedrive中文件的速度过慢,用纸飞机的话,应该是挂云函数的香港节点还是onedrive所在地的节点
用 idm xdown motrix adm 等多线程工具下载,一般能跑 6m/s 以上的速度。实在要挂梯,当然是挂 onedrive 所在地,具体可以复制下载链接的域名,ping 一下得到它的 ip ,然后搜索这个 ip 的所在地
有没有腾讯云+其他云盘的解决方法
大佬给写一个就有了
emmm
我还以为这个是你写的呢
朋友写的,有我 0.5% 代码。不过我也完整写了一个,https://logi.ml/front-end/scf-fodi.html
你是不是搞错了链接了
没有,是不是你没仔细看@(滑稽)
emmm
在线观看有些视频没有声音
浏览器只支持有限音频格式,我所知道的有 AAC 和 AC3,DTS 和 DDP 等都无法解码。
Source 那里没有下拉框怎么办
直接访问应该就可以了
不可以,跳转不了页面。页面会卡死
github 地址发出来我看一下
https://feng-009.github.io/
index.html 填网关地址的地方,第一个单引号后面多了换行,删掉就行了
试了没用,不过点击了Choose a theme就解决了,谢谢了~
哈哈,好吧
也可以试试这个程序,速度快点,不过没有管理功能https://logi.ml/front-end/scf-fodi.html
怎么管理文件上传下载?我登录点击了没有效果
用客户端管理吧,这个主要用来分享
代码往后还会更新其他版本么?
有空会更新,不过大体保持不变
你好!为什么我搭建好后显示:Item does not exist;
登陆后无法新建文件夹,也无法上传文件?
能列出文件吗
根目录下没有文件夹,无法新建文件夹,无法上传文件,所以也无法列出文件
用客户端创建一个文件夹再试试
在电脑客户端创建文件夹后就可以正常使用了,谢谢!
不谢不谢