AppGallery Connect场景化开发实战—图片存储分享
简介
在上一篇场景开发实战中,我们使用AppGallery Connect(以下简称AGC)的认证服务、云函数、短信服务等服务实现了用户注册通知的功能。 本次,我们使用AGC提供的云函数、云存储和App Linking三大服务实现了图片的存储、在线剪辑和分享功能,相关代码已同步至Github。
实现概览
- 用户在客户端选择需要上传的图片,调用云存储Android/iOS的上传接口将图片上传至云存储。
- 创建处理图片的云函数,选择云存储触发器,每当云存储有新的图片上传都会触发云函数进行缩略图处理。
- 云函数中调用云存储Node.js SDK的下载文件接口将图片下载至内存,通过特定方法处理图片,而后调用云存储Node.js SDK中的上传接口将处理完的图片上传回云存储。
- 端侧通过云存储Android/iOS SDK下载云存储上的缩略图后,通过AppLinking生成分享链接分享给好友,好友点击链接后即可直接打开到应用的指定页面。
端侧上传图片至云存储
请登录AppGallery Connect官方网站,并在控制台中进行操作:
- 启用云存储服务
- 创建新的存储实例
- 设置云存储安全策略
- 设置云存储文件夹结构
在您的应用中进行的操作:
1、使用云存储Android SDK中的getStorageReference方法为存放上传文件的云端地址创建引用:
2、调用SDK中的上传接口将本地的文件上传至存储实例中:
云存储触发云函数
在AppGallery Connect控制台中进行的操作:
- 登录AppGallery Connect,找到云函数并启用。
- 新建函数并设置函数名称,部署信息等相关设置。
- 在“代码文件”配置项处,上传处理图片尺寸的函数部署包至云函数。
- 创建云存储触发器,输入之前创建的存储实例名称并选择事件名称为Complete(意为上传图片成功后开始触发云函数剪裁图片)。
云函数处理图片尺寸
在您的应用中进行的操作:
1、调用云存储Node.js SDK指定需要下载的实例与存储桶并指定本地地址:
2、调用方法下载文件:
3、下载文件完成后进行处理图片分辨率的操作。
4、图片处理完成后将新的图片上传回云存储。
App Linking链接分享
请登录AppGallery Connect官方网站,并在控制台中进行操作:
- 启用App Linking服务。
- 启用服务以后,在链接前缀页签,创建一个全网唯一的链接前缀。
- 配置您应用签名的SHA256文件,具体的配置方法可参考 配置签名指纹证书。
在您的应用中进行的操作:
1、使用云存储接口获取对应图片的下载链接。
2、将下载链接和对应的图片ID生成分享链接。
3、在AndroidManifest中配置Intent-Filter,用于接收App Linking链接并且直接拉起应用。
4、在应用启动页的OnCreate方法中, 接收并且处理App Linking链接的方法。
测试功能
您可以执行以下操作来测试图片或视频是否可以正常分享:
- 打开您的应用,随机拍摄一张图片存储于手机中。
- 查看图片上传后的处理效果。
- 进入图片详情界面,点击右上角的分享链接,查看是否生成链接并发送给好友。
- 使用好友帐号登录应用,查收并点击链接,测试是否可正常打开分享的图片页面。
更多参考,请下载Demo。
欲了解更多详情,请参见:
华为官网:
https://developer.huawei.com/consumer/cn/forum/topic/0203726140997690403?fid=0101271690375130218?ha_source=zzh
参考文档:
使用云存储上传图片:
使用Applinking分享链接:
创建云函数: