踏入鸿蒙世界的敲门砖,标志着您在技术征途上的全新起点,提升就业竞争力,获得行业认可,点亮职业成长先机,快人一步抢占未来应用开发赛道!https://developer.huawei.com/consumer/cn/training/dev-cert-detail/101666948302721398?ha_source=hmosclass-juejin&ha_sourceId=89000434
注意
当前API12的端云一体化开发工程仅支持手动签名。
简介
通过此案例学习,可以学习到Serverless模板使用,云存储、云数据库、云函数;同时可以学习到如何在云函数里调用云数据库操作。
知识点
1. 图片尺寸调整模板
2. 云存储
3. 云数据库
4. 云函数
1. Serverless模板使用
使用流程
![]()
1.1 登录AppGallery Connect 进入到创建好的项目,开通云函数、云数据库和云存储,这里就不详细讲解如何开通云函数、云数据库、云存储,官方文档有详细讲解。
1.2 在左边菜单栏 云开发(Serverless) -> Serverless模板 -> 浏览更多Serverless模板 -> 图片尺寸调整 (点击部署) -> 选择 之前创建好的项目 -> 选择 数据处理位置 -> 配置参数 -> 开始部署 - 已部署模板
![]()
配置云函数
图片尺寸调整模板会在一键部署时自动生成模板的函数接口,模板部署成功后,您还需在“云函数”页面为对应的函数接口添加对应的云存储触发器,以实现在云存储的实例中存放图片后自动触发云函数。
1.3 选择“云开发(Serverless)> 云函数”,在“函数列表”页面根据已部署模板的“实例ID”找到模板对应的函数,点击函数名称进入函数详情页。
![]()
1.4 在函数详情页选择“触发器”页签,点击“添加触发器”。
![]()
1.5 在弹出的“添加触发器”窗口中配置触发器相关参数。
![]()
具体参数说明如下表所示。
![]()
1.6 配置完成后,点击“确定”。
![]()
**小结:**这样就完成了Serverless图片尺寸调整模板使用,虽然可以用逗号隔开调整生成多个尺寸不同的图片,有时我们只是想上传到不同目录下,生成的图片尺寸不同,告诉大家一个好消息,也就是可以部署多个图片尺寸调整模板,这样就可以根据不同目录,生成不同尺寸缩略图。
2. 云存储开发
2.1 文件选项是上传的文件,可以创建文件夹存放不同的文件。
![]()
2.2 安全选项是限制上传权限,为了方便开发测试,可以临时把读写公开,如下面,方便学习此案例。
![]()
**小结:**其实云存储主要设置就是安全策略,哪些文件只可以只读,哪些文件夹只可以写,哪些文件夹可以读写。
3. 云数据库开发
3.1 新增加一个图片表,用来保存上传到云存储的图片和缩略图的访问URL。
![]()
3.2 点击新增按钮,新增对象类型,也就是数据库表。
![]()
![]()
![]()
![]()
![]()
**小结:**根据图片步骤,就可以创建好t_images表,为下面云函数调用保存数据到这个表里
4. 云函数开发
4.1 云函数开发是基于端云一体化项目开发,关于端云一体化项目创建,就是在创建项目时,选择下图模板就行,前提是要先在AGC上创建了项目和应用,这里就不介绍如何创建端云一体化项目,可以移步到官方文档查看。
![]()
4.2 右击cloudfunctions目录,创建云函数,如下图
![]()
4.3 输入云函数名称,选择Cloud Function类型
![]()
4.4 云函数目录结构
![]()
4.5 云数据库操作类
![]()
![]()
![]()
![]()
4.6 云函数操作
![]()
![]()
5. ArkTS开发
5.1 界面UI
![]()
5.2 云存储图
![]()
5.3 云数据库表数据图
![]()
5.4 在EntryAbility的onCreate回调函数初始化AGC
![]()
5.5 界面布局
![]()
![]()
5.6 打开图库选择一张图片,并把图片拷贝到缓存目录下。
![]()
![]()
5.7 上传文件到云存储
![]()
![]()
![]()
5.8 调用云函数
![]()
5.9 获取图片下载URL
![]()
5.10 获取文件名后辍
![]()
总结
此案例主要流程就是点击按钮打开图库,选择一张图片,把图片拷贝到缓存目录一下,因为目前上传文件到云存储,只支持从缓存目录下获取,图片上传到云存储后,触发图片尺寸调整云函数,生成指定尺寸缩略图,并存放到指定路径的云存储位置上,前端监听到图片上传成功后,调用获取图片下载URL接口,获取到原图和缩略图的访问URL后,调用云侧云函数,并判断出是插入数据到云数据库,从而调用云数据库保存数据,案例整体流程就是这样,覆盖到了Serverless模板使用,云存储,云函数,云数据库操作。(转载自51CTO,作者:狼哥Army)