鸿蒙端云一体开发实践:用 ArkTS + OBS 搭建云相册应用
一、场景背景
手机本地相册容量有限,换机迁移、多设备同步都是痛点。基于 HarmonyOS 的端云一体能力,配合华为云 OBS 对象存储,可以低成本搭建一个"拍照即上云"的云相册应用。本文记录从零搭建的关键步骤与踩坑点。
二、环境准备
1. DevEco Studio 创建 ArkTS 工程(API 12+);2. 华为云控制台创建 OBS 桶,建议开启归档存储降成本;3. 为应用创建 IAM 子账号并最小化授权,只授予所在桶的读写权限,避免把主账号 AK/SK 写进端侧代码。
三、端侧实现要点
图片选择用 photoAccessHelper 的 PhotoViewPicker,拿到 uri 后用 fs 拷贝到沙箱目录再上传。上传走 @ohos.net.http,注意大图要先压缩:用 @ohos.multimedia.image 的 createImageSource 配合 packing 接口,把 4000px 原图压到 1600px、质量 80,体积一般能降 80% 以上,弱网体验明显改善。
四、云侧直传方案
若经服务器中转,流量走两跳、时延翻倍。更优做法是由 FunctionGraph 生成 OBS 预签名 URL 下发给端侧,端侧直传 OBS。签名 URL 有效期建议 15 分钟,桶策略同时限制 Content-Type 与最大长度,防止被滥用。
五、踩坑记录
1. 上传偶发 http 2301099:多为未配置 ohos.permission.INTERNET 或后台快照时网络被挂起,申请长时任务即可;2. 同名对象会被覆盖,对象键建议用"设备号+时间戳+hash";3. 归档桶取回有分钟级延迟,相册浏览走标准存储层更合适。
六、小结
端云一体的核心是把"端侧体验"和"云侧成本"一起设计:端侧负责压缩与断点续传,云侧用预签名直传减少中转,存储分层控制成本。整体链路跑通后,单张照片的云端成本可以压到厘级。
- 点赞
- 收藏
- 关注作者
评论(0)