
云存储图片生成缩略图开发 原创
注意
当前API12的端云一体化开发工程仅支持手动签名。
简介
通过此案例学习,可以学习到Serverless模板使用,云存储、云数据库、云函数;同时可以学习到如何在云函数里调用云数据库操作。
知识点
1. Serverless模板使用
使用流程
序号 | 步骤 | 详情 |
---|---|---|
1 | 创建项目及应用 | 使用此Serverless模板之前,您需要先创建项目和添加应用。 |
2 | 部署模板 | 一键部署模板,配置模板参数,请参见部署模板。 |
3 | 使用模板 | 部署完成后,即可使用模板,请参见使用模板。 |
1.1 登录AppGallery Connect 进入到创建好的项目,开通云函数、云数据库和云存储,这里就不详细讲解如何开通云函数、云数据库、云存储,官方文档有详细讲解。
1.2 在左边菜单栏 云开发(Serverless) -> Serverless模板 -> 浏览更多Serverless模板 -> 图片尺寸调整 (点击部署) -> 选择 之前创建好的项目 -> 选择 数据处理位置 -> 配置参数 -> 开始部署 - 已部署模板
![]() |
![]() |
---|
配置云函数
图片尺寸调整模板会在一键部署时自动生成模板的函数接口,模板部署成功后,您还需在“云函数”页面为对应的函数接口添加对应的云存储触发器,以实现在云存储的实例中存放图片后自动触发云函数。
1.3 选择“云开发(Serverless)> 云函数”,在“函数列表”页面根据已部署模板的“实例ID”找到模板对应的函数,点击函数名称进入函数详情页。
1.4 在函数详情页选择“触发器”页签,点击“添加触发器”。
1.5 在弹出的“添加触发器”窗口中配置触发器相关参数。
具体参数说明如下表所示。
参数 | 说明 |
---|---|
触发器类型 | 选择“云存储触发器”。 |
存储实例 | 请配置为配置云存储中保存的存储实例名称。 |
事件名称 | 选择“Completed”。 |
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模板使用,云存储,云函数,云数据库操作。
