File-S 文件转储服务用于无障碍跨平台文件传输,用户可以免登录存放和收取文件;应用于一些临时文件使用场景下的文件传输服务。
使用云开发的数据库、云存储、云函数、云接入能力,登录验证使用匿名登录。
进入腾讯云云开发控制台-创建环境,选择按量计费环境,环境名称可以自定义设置。如果已有按量计费环境则可以跳到下一步。
进入进入静态网站控制页,选择刚才创建好的环境,开通静态网站托管服务。
进入数据库控制页,添加 3 个集合;集合名字分别为 dustbin、file、manage
进入环境设置页-登录授权的登录方式中,勾选匿名登录
访问github 仓库,下载源码到本地。源码项目目录如下:
找到项目目录下 cloudfunctions/asset/manage-database.json 文件,此为数据库集合 manage 的初始数据结构
进入环境控制台-数据库,点击进入 manage 集合,导入 manage-database.json 文件。如下图所示:
将项目 webviews/index.html 以 http 的形式运行,可使用 IDE 工具 vscode,hbuilder。在浏览器的地址栏中确定 url 地址,比如例子中,域名地址为 127.0.0.1:5500
如果想在本地开发,必须要在云开发中配置本地的安全域名才能够正常调试开发。
进入环境设置页-安全配置,配置 WEB 安全域名,在这里以 127.0.0.1:5500 举例,请按照自己的实际域名配置
云开发是通过环境 ID 来判定与特定环境进行数据通信的,所以在项目中要配置所有的相关环境 ID 为自己的 ID。(建议熟练后,使用配置文件形式来配置)
进入环境总览页,复制获取云开发环境 ID。
打开项目目录,将以下文件中标注有【云开发环境 ID】处替换成自己的云开发环境 ID
webviews/js/index.js 第 1 行
cloudbaserc.js 第 2 行
cloudfunctions/functions 下所有目录的 index.js 文件,tcb.init()处
前往腾讯验证码官网创建验证码应用。
进入创建的验证码详情,基础配置,获得应用验证码 aid 和 AppSecretKey。
打开 cloudfunctions/functions/getFile/index.js,在第 3 行 TCaptchaID 中填充自己项目的 aid 和 AppSecretKey;
在 webviews/index.html 大约 119 行(可能会格式化变行),id 为 TencentCaptcha 的 button 元素,将属性 data-appid 填写为【应用验证码 aid】
由于腾讯验证码需要获取 IP 地址,所以采用更灵活的云接入形式,将 getFILE 云函数支持 http 触发。因为浏览器有同学策略,所以我们需要配置 getFile,保证能够正常的进行请求,同时过滤非法请求。
前往静态网站控制台-设置,复制域名信息下的默认域名;
粘贴至 cloudfunctions/functions/getFile/index.js 第 9 行 AllowOriginList 数组中第 1 项。另外还需要配置一下本地域名到数组中
如果没有安装 nodejs 请自行前往官网安装。
在项目目录 cloudfunctions/functions 下的每个目录,都右键执行终端中打开。
在终端中输入以下命令,安装依赖。每个目录需要执行的命令如下:
delete 目录
downFile 目录
getFile 目录
myfile 目录
upload 目录
在 cloudfunctions/functions 下的每个目录,都右键执行部署云函数(上传全部文件)。在一开始使用时会出现登录,按照提示完成登录步骤即可。【如果没有此选项,请前往云开发 VSCODE 插件安装并学习使用】
getFile 云函数需要以 HTTP 形式对外提供服务,所以需要对该云函数配置 http 触发。
进入云开发云函数列表页,选择 getFile 云函数。进入函数详情,如下所示:点击编辑
在 http 触发处配置路径:/getFile。点击保存
上传成功后如下图所示:可以复制分享,也可以继续存储
点击查看我上传的文件
将会拉取从此处上传的文件
填写必要的取件号码,根据密码有无填写密码,点击下载文件
会弹出腾讯验证码,验证通过后才可以发起下载
如果本地验证都没有问题,则配置没有问题。如果出现任何一个步骤的错误提示,则 F12 控制台查看并排除原因,一般是环境 ID 写错,云开发服务端依赖没有安装等错误。
将本地验证成功的项目上传至静态存储中。在 webviews 目录右键点击,上传至静态网站根目录
进入云开发静态网站管理页,可以看到已上传的项目。
进入云开发静态网站设置页,访问默认域名网址即可进入线上项目
附件
本文出自 云开发团队