云存储图片生成缩略图开发
踏入鸿蒙世界的敲门砖,标志着您在技术征途上的全新起点,提升就业竞争力,获得行业认可,点亮职业成长先机,快人一步抢占未来应用开发赛道!https://developer.huawei.com/consumer/cn/training/dev-cert-detail/101666948302721398?ha_source=hmosclass-itzhijia&ha_sourceId=89000249
注意当前 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.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)