前言
OneDrive的网盘程序介绍过很多款,但是都是需要VPS服务器来部署,本文将介绍无需服务器,使用腾讯云SCF云函数服务,即可在云端部署你的OneDrive分享云盘.
部署准备
获取API密钥
登陆腾讯云控制台 - 访问管理
API密钥管理 - 新建密钥
获取SecretId
和SecretKey
获取云函数代码
访问项目地址点击download下载并解压缩
部署SCF云函数
新建函数
登陆腾讯云控制台 - SCF云函数
区域选择 - 中国香港 - 新建
填写函数名
运行环境选择Php 7.2
选择空白函数
下一步
拉到下方高级配置
环境变量中分别添加上文获取的SecretId
和SecretKey
完成
上传函数代码
函数代码
提交方法 - 本地上传文件夹
选择刚才解压缩的文件夹保存
触发方式
添加触发方式
- 触发方式 - API网关触发器
勾选
启用集成响应- 其他保持默认并保存
生成访问路径
部署网盘
链接OneDrive
访问生成的访问路径
选择你的OneDrive类型
确认后会弹出登陆OneDrive页面,登陆后等待跳转回即可成功链接.
配置网盘
函数配置 - 编辑为提高访问体验,可将内存可提高至512M或1024M
连接过OneDrive后,此时的环境变量已经自动生成了一些配置,请不要删除
.
继续添加以下环境变量:
- sitename =>
IOIOX网盘
配置站点名称 - public_path =>
/
私有地址访问网盘的文件展示路径,/
为根目录. - private_path =>
/
配置CDN加速域名访问网盘的文件展示路径,/
为根目录. - passfile =>
.password
配置加密功能,目录下有.password
的文件,改目录需密码才能访问. - admin =>
xxxxxxxx
配置管理员密码
配置域名
解析专用域名
为本网盘配置一个二级域名,并解析CNAME到上文生成的访问路径
的前半部分
.
CNAME参考service-ft48dihy-1253567893.ap-hongkong.apigateway.myqcloud.com
自定义域名
触发方式 - 点击API服务名
自定义域名 - 新建
新增自定义域名
- 填写自定义域名
- 协议选择
http和https
- 选择证书,如没有可以
点击前往
免费申请. - 路径映射选择自定义路径,值为
/
和发布
.
管理API - 点击编辑
路径改为/
根目录
下一步
确保启用响应集成
下一步
返回类型选择HTML
完成
前往发布服务
点击发布
发布环境选择发布
备注自定义填写后提交
配置强制跳转HTTPS
函数服务 - 函数代码
- 选择左侧
index.php
- 找到
<head>
标签,在下面粘贴以下代码
强制跳转代码
<script>
if (location.protocol === "http:") {
location.href = location.href.replace(/http/, "https");
}
</script>
部署完成
至此完成以上全部流程,现在可以使用域名来访问网盘了.
结语
腾讯云SCF云函数服务在2020年1月7日正式收费
,免费额度为每月40万GBs资源使用量及100万次跳用次数.而本网盘程序仅仅只是需要耗费调用OneDrive的API请求的资源使用量和次数,来获取文件的直连下载地址.最终上传和下载文件都是直连OneDrive服务器,不会产生额外流量费用,所以免费的额度基本时足够日常使用了
.
44 条评论
楼主,自定义域名下面的那几步能不能不做,没有域名
可以,那就用它生成的那一长串地址使用.
环境变量无法自动添加怎么办
要停止发布,修改后在发布试试
不能安装,提示The 'Onedrive_ver' may in Environments但是环境变量没有
在获取token时这些变量应该时自动传回来生成的
Onedrive_ver=MS 自己加一个试试,我这个是美区onedrive,没有国内的世纪互联测试国内版本变量名.
阿哈,大佬的这个教程写得可真详细,我之前也准备写一个的,有了你这个就不用写了,完美。
ヾ(≧∇≦*)ゝ
我更新一下哈,刚才试了,只有香港的支持,北京,上海,广州的都报错,说区域不支持。成都的不支持API网关触发器!!!!
InvalidParameterValue
A value specified in
Region
is not valid, is unsupported, or cannot be used.function_name:onedrive
Region:bj
namespace:default
谢谢测试,我补充到文中.
地区选香港也不行了吗
Error
InvalidParameterValue
A value specified in
Region
is not valid, is unsupported, or cannot be used.function_name:scf_onedrive_cd
Region:hk
namespace:default
可能是有故障吧,我的云函数今天凌晨开始重启多次.非常不稳定
https://service-op2pq2yo-1255468794.hk.apigw.tencentcs.com/release/scf_onedrive_cd
我的SCF链接地址里的Region就hk,你的截图是ap-hongkong,是不是这个原因呢。
应该是这个问题
另外我还遇到一个奇怪的问题,在添加了private_path 和public_path参数之后,运行就报错了,报Internal server error。路径都是/
我检查了我前几天申请的,发现上面两个路径是可以添加的。今天再弄就不行了!
把那两个删除,就能正常运行。
不会吧,我设置为/就是根目录,就在刚才还变动过,设置为/public,就展示public中的内容了.