从鸿蒙云相册案例看端云分工:照片存 OBS,数据存数据库,体验先存本地
【摘要】 浏览鸿蒙云相册案例后的学习笔记:照片等大文件存 OBS,结构化数据存数据库,体验坚持本地优先,密钥只放服务端;并给出从最小闭环到分类搜索的落地顺序。
今天在鸿蒙开发实践中心浏览了“用 OBS 打造个人云相册”案例,又在 AI 开发者空间里用 AI Shell 问答验证了思路。把学习到的端云分工整理成三点体会,写给同样想做端云同步类小应用的开发者参考。
一、媒体文件和结构化数据要分开存
云相册里有两类东西,存法完全不同:
- 照片、视频这些大文件,适合放对象存储 OBS:容量几乎没有上限,按实际用量计费,换手机也不怕丢;
- 相册名、照片的拍摄时间、标签、收藏状态这些结构化数据,适合放数据库:方便按时间、标签检索,也方便做同步时的增量比对。
端侧只保留一份索引和缩略图缓存,需要看原图时再按需从云端取。这样做的好处是:本地不占满存储,云端按量花钱,备份和分享也都有了着落。反过来如果把照片原图全塞数据库,表会迅速膨胀,查询和备份都会变慢。
二、体验上坚持“本地优先”
新建一张照片时,最好的体验是:点保存,列表里立刻出现,根本不用等网络。做法是先写端侧数据库并刷新界面,再把变更异步同步到云端。离线、弱网时应用照常用,联网后按时间戳或版本号合并,有冲突以最新一次操作为准。
这条原则同样适用于待办、日记、笔记类应用:先保证单机可用,再补云端同步。同步是加分项,不是可用性的前提。
三、鉴权与密钥不要图省事
这类应用至少要守住三条底线:
- 登录后服务端发令牌,端侧用安全存储保存令牌,不要长期保存账号密码;
- 数据库密码、对象存储密钥只放在服务端配置文件里,绝不写进端侧代码,更不要提交到公开代码仓;
- 端侧上传下载走服务端签发的临时凭证或预签名链接,长期密钥不出服务端。
我在 AI 开发者空间体验时也特意只问了一个知识性问题,没有在对话里贴任何密钥——开发习惯要从第一天养成。
四、落地顺序建议
| 步骤 | 目标 | 验收标志 |
|---|---|---|
| 1 | 新建—本地展示 | 断网也能新建并立即看到 |
| 2 | 登录与同步 | 换设备登录后能拉回已有记录 |
| 3 | 媒体上云 | 原图存入 OBS,列表只加载缩略图 |
| 4 | 分类与搜索 | 按标签和时间能快速找到照片 |
先把最小闭环跑通,再加分类、搜索、分享这些功能;每一步都有可观察的结果,出了问题也容易定位。
小结
云相册这类应用的核心不是堆功能,而是把分工想清楚:大文件交给对象存储,结构化数据交给数据库,体验交给本地优先,安全交给服务端鉴权。分工对了,后面加功能才不会越改越乱。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)