社区/学习指南/Web云开发应用实战指南

完全使用云开发构建文件存储转发工具

File-S 文件转储服务用于无障碍跨平台文件传输,用户可以免登录存放和收取文件;应用于一些临时文件使用场景下的文件传输服务。
使用云开发的数据库、云存储、云函数、云接入能力,登录验证使用匿名登录。

创建云开发环境

一、新建【按量计费云开发环境】

进入腾讯云云开发控制台-创建环境,选择按量计费环境,环境名称可以自定义设置。如果已有按量计费环境则可以跳到下一步。
1.png

二、开通静态网站托管服务

进入进入静态网站控制页,选择刚才创建好的环境,开通静态网站托管服务。
2.png

三、创建数据库

进入数据库控制页,添加 3 个集合;集合名字分别为 dustbin、file、manage

3.png

四、开启匿名登录

进入环境设置页-登录授权的登录方式中,勾选匿名登录

4.png

下载并部署源码

一、下载源码

访问github 仓库,下载源码到本地。源码项目目录如下:
5.png

二、导入初始化数据

找到项目目录下 cloudfunctions/asset/manage-database.json 文件,此为数据库集合 manage 的初始数据结构
进入环境控制台-数据库,点击进入 manage 集合,导入 manage-database.json 文件。如下图所示:
6.png

三、本地运行

将项目 webviews/index.html 以 http 的形式运行,可使用 IDE 工具 vscode,hbuilder。在浏览器的地址栏中确定 url 地址,比如例子中,域名地址为 127.0.0.1:5500
7.png

四、配置本地开发的安全域名

如果想在本地开发,必须要在云开发中配置本地的安全域名才能够正常调试开发。
进入环境设置页-安全配置,配置 WEB 安全域名,在这里以 127.0.0.1:5500 举例,请按照自己的实际域名配置
8.png

五、填写云开发环境 ID 到项目中

云开发是通过环境 ID 来判定与特定环境进行数据通信的,所以在项目中要配置所有的相关环境 ID 为自己的 ID。(建议熟练后,使用配置文件形式来配置)

  • 进入环境总览页,复制获取云开发环境 ID。9.png

  • 打开项目目录,将以下文件中标注有【云开发环境 ID】处替换成自己的云开发环境 ID

  • webviews/js/index.js 第 1 行
    10.png

  • cloudbaserc.js 第 2 行
    11.png

  • cloudfunctions/functions 下所有目录的 index.js 文件,tcb.init()处
    111.png

配置腾讯云验证码

一、创建腾讯验证码

前往腾讯验证码官网创建验证码应用。
12.png

进入创建的验证码详情,基础配置,获得应用验证码 aid 和 AppSecretKey。13.png

二、配置项目

打开 cloudfunctions/functions/getFile/index.js,在第 3 行 TCaptchaID 中填充自己项目的 aid 和 AppSecretKey;
14.png

在 webviews/index.html 大约 119 行(可能会格式化变行),id 为 TencentCaptcha 的 button 元素,将属性 data-appid 填写为【应用验证码 aid】
15.png

配置本地云接入同源策略

一、说明

由于腾讯验证码需要获取 IP 地址,所以采用更灵活的云接入形式,将 getFILE 云函数支持 http 触发。因为浏览器有同学策略,所以我们需要配置 getFile,保证能够正常的进行请求,同时过滤非法请求。

二、配置

前往静态网站控制台-设置,复制域名信息下的默认域名;
16.png

粘贴至 cloudfunctions/functions/getFile/index.js 第 9 行 AllowOriginList 数组中第 1 项。另外还需要配置一下本地域名到数组中
17.png

部署云函数和 HTTP 触发

一、使用 npm 安装服务端 SDK

如果没有安装 nodejs 请自行前往官网安装。
在项目目录 cloudfunctions/functions 下的每个目录,都右键执行终端中打开。

18.png

在终端中输入以下命令,安装依赖。每个目录需要执行的命令如下:

  • delete 目录
    image.png

  • downFile 目录
    image.png

  • getFile 目录
    image.png

  • myfile 目录
    image.png

  • upload 目录
    image.png

19.png

二、上传部署云函数

在 cloudfunctions/functions 下的每个目录,都右键执行部署云函数(上传全部文件)。在一开始使用时会出现登录,按照提示完成登录步骤即可。【如果没有此选项,请前往云开发 VSCODE 插件安装并学习使用】
20.png

三、配置云函数 HTTP 触发

getFile 云函数需要以 HTTP 形式对外提供服务,所以需要对该云函数配置 http 触发。
进入云开发云函数列表页,选择 getFile 云函数。进入函数详情,如下所示:点击编辑
21.png

在 http 触发处配置路径:/getFile。点击保存22.png

本地测试项目可用性

一、重新启动项目,进入页面

23.png

二、上传文件测试,选择文件进行上传

24.png

上传成功后如下图所示:可以复制分享,也可以继续存储
25.png

三、查看存储的历史

点击查看我上传的文件26.png

将会拉取从此处上传的文件
27.png

四、取出下载文件

填写必要的取件号码,根据密码有无填写密码,点击下载文件
28.png

会弹出腾讯验证码,验证通过后才可以发起下载
29.png

30.png

五、总结

如果本地验证都没有问题,则配置没有问题。如果出现任何一个步骤的错误提示,则 F12 控制台查看并排除原因,一般是环境 ID 写错,云开发服务端依赖没有安装等错误。

上传至静态存储

将本地验证成功的项目上传至静态存储中。在 webviews 目录右键点击,上传至静态网站根目录
31.png

进入云开发静态网站管理页,可以看到已上传的项目。
32.png

进入云开发静态网站设置页,访问默认域名网址即可进入线上项目
33.png

34.png

附件

本文出自 云开发团队