用 OBS 打造个人云相册:鸿蒙应用配置与备份入门(转载节选)

举报
yd_265599149 发表于 2026/11/12 09:19:10 2026/11/12
【摘要】 转载来源:鸿蒙开发实践中心《用OBS打造个人云相册app》源仓库:https://gitcode.com/harmony-practice-center/HarmonyOS-APP-OBSCloudAlbum以下节选 README 第 1、2 章,转为纯文本排版;完整实践与更新见源仓库。用OBS打造个人云相册app案例仓库:HarmonyOS-APP-OBSCloudAlbum。素材下载地址...

转载来源:鸿蒙开发实践中心《用OBS打造个人云相册app》

源仓库:https://gitcode.com/harmony-practice-center/HarmonyOS-APP-OBSCloudAlbum

以下节选 README 第 1、2 章,转为纯文本排版;完整实践与更新见源仓库。


用OBS打造个人云相册app


案例仓库:HarmonyOS-APP-OBSCloudAlbum。素材下载地址读取仓库默认分支。


使用 AI 辅助实践,将照片和视频备份到华为云 OBS,并查看云端对象与备份记录。


项目 内容

适合谁 愿意使用 AI 编程工具并核对构建和设备结果的开发者,了解 ArkTS 和 HTTP 更易上手

难度与耗时 进阶;快速体验约 30 分钟,完整实践约 120 分钟,均为估计,不含环境准备

你将学到 相册访问、OBS Header 签名、逐文件备份与云端预览

你将完成 体验已有应用,并从空项目构建自己的相册云备份作品

实践环境 云端工作区与云手机,或本地 DevEco Studio 和模拟器/真机;需要华为云 OBS


阅读路线:快速体验 · 完整实践 · 功能检查与排障


1. 案例概览


应用读取用户授权的本地照片和视频,逐文件上传到自己的 OBS 桶,并提供记录、对象详情与云图库。


核心功能与体验

在本地图库筛选照片或视频,选择文件或一键备份全部待备份项目,观察逐文件进度与结果。

在备份记录中查看结果;取消后可再次发起备份,已完成的文件依据目标隔离的本地记录、MD5 和云端 ETag 核验跳过;取消的当前文件需整文件重新上传。

在云端刷新对象列表,查看详情或切换网格;照片和视频以缩略图展示,打开图片及视频预览。


对象键由本地 URI、大小、修改时间与 MD5 等信息生成,使用 photo_backup/v2/ 前缀。记录按 Endpoint 和桶隔离;当前不支持后台定时备份或字节级断点续传。


本地图库 备份记录 云端网格

  

技术方案一览


本地相册


媒体扫描与备份


OBS Header 签名与 HTTP


华为云 OBS


本地备份记录


对象列表与认证预览


层级 技术 作用

端侧 ArkTS、ArkUI、photoAccessHelper 媒体选择与交互

云侧 华为云 OBS REST API 上传、列举及读取对象

数据 preferences、应用缓存 保存配置与记录,缓存云端预览

工具 DevEco Studio、HarmonyOS SDK 构建和设备运行

2. 开始之前

环境与配置

项目 要求及获取方式

云端开发 鸿蒙开发实践中心作业中心账号、支持 API 26 的在线工具链和云手机;创建前核对实际 SDK、可选 ROM、连接及签名条件,版本未提供时先联系平台准备

本地开发 DevEco Studio 及 HarmonyOS SDK;工程 compile、compatible、target 均为 26.0.0。本地可用 DevEco Studio 26.0.0,AI 编程工具按实际安装情况使用

设备 云端使用支持 API 26 的云手机;本地使用相应模拟器或真机,真机需自己的有效调试签名

OBS 按下方步骤创建私有桶,取得 AK、SK、区域 Endpoint 和桶名;推荐使用最小权限 IAM 用户

权限 ohos.permission.READ_IMAGEVIDEO 用于读取授权媒体;ohos.permission.INTERNET 用于访问 OBS;ohos.permission.GET_NETWORK_INFO 在工程中声明,当前未发现代码调用

配置安全 设置页保存 AK、SK、Endpoint 和桶名;AK 和 SK 均为密码态输入,但 AK/SK 仍以明文保存在应用沙箱 preferences 中,仅用于教学调试。不要提交或分享凭据

创建 OBS 并获取 App 配置


云端和本地实践使用同一套 OBS 配置。登录华为云,进入控制台,搜索并打开“对象存储服务 OBS”。已有可用桶和密钥时,可直接核对第 3、4 步。


1. 选择资源包(可选)


在 OBS 控制台进入“资源包管理 → 购买资源包”,选择“存储包”。本案例可使用以下活动规格,单 AZ 和多 AZ 二选一,不必都买:


资源包类型 容量与时长 活动参考价 创建桶时的冗余策略

标准存储多 AZ 包 40 GB / 1 年 9 元 多 AZ 存储

标准存储单 AZ 包 40 GB / 1 年 9 元 单 AZ 存储


先选择使用地域,再核对规格、有效期、账号活动资格、续费选项及订单价格后购买;活动是否可选及最终金额以购买页为准。已有资源包无需重复购买。不购买资源包也可按需使用 OBS,详见资源包购买指引。


40 GB 是存储容量额度,不是下载流量,也不是整年费用封顶。存储包只按适用条件抵扣存储费;公网下载流量、读写请求及超出额度或有效期的用量仍可能产生费用。


2. 创建私有桶


资源包用于抵扣费用,购买后不会自动创建桶。回到“桶列表 → 创建桶”,按下表填写后单击“立即创建”:


参数 本案例选择

区域 按实际使用选择;已购资源包时选相同地域,例如华北-北京四

桶名 全局唯一的小写字母、数字和连字符组合,例如 album-demo-7m3x9;换成自己的名称,避免使用英文句点

存储类别 标准存储

数据冗余存储策略 单/多 AZ 任选;已购包时必须匹配:多 AZ 包对应多 AZ 桶,单 AZ 包对应单 AZ 桶

桶策略/访问权限 私有;App 使用签名请求访问


桶名、区域及单/多 AZ 策略创建后不能直接修改,提交前核对。资源包、桶的区域与 AZ 策略,以及对象的存储类别必须匹配,才可抵扣相应用量;不匹配时会按需计费。详见创建桶与资源包仍扣费的排查说明。


3. 取得 App 的四项信息


已有可用访问密钥可直接使用。没有时,在控制台右上角用户名菜单进入“我的凭证 → 访问密钥 → 新增访问密钥”,按提示验证身份并下载保存密钥文件,操作见访问密钥获取说明。


App 设置字段 去哪里获取 填写内容

AK 访问密钥列表或下载的密钥文件 Access Key ID

SK 新建密钥时下载的密钥文件 Secret Access Key;之后不能重新查看,遗失时需新建并替换

Endpoint 桶列表 → 进入桶 → 概览,查看所属区域的 Endpoint 区域域名,例如 obs.cn-north-4.myhuaweicloud.com;不含桶名、对象路径或端口

桶名 桶列表或桶概览的“桶名称” 自己刚创建的完整桶名,不是文件夹名


Endpoint 示例仅对应华北-北京四;其他地域必须复制对应值,不要照抄 App 默认值,也不要填“桶名.Endpoint”形式的桶访问域名或完整对象 URL。格式说明见OBS 访问规则。


推荐使用已开启“编程访问”的专用 IAM 用户,授予该桶的 obs:bucket:ListBucket 和桶内对象的 obs:object:PutObject、obs:object:GetObject 权限,范围以实际测试桶为限,参见常用 OBS 权限。AK/SK 只在 App 中填写,不发到聊天、源码或截图中。


4. 安装后保存配置并检查连接


完成后续快速体验中的 App 安装后,打开“设置”,依次填入 AK、SK、Endpoint 和桶名后保存;刷新云端列表,再选择一张非敏感测试照片发起备份。若返回 403,先核对四项配置、设备时间及桶访问权限。


准备完成标志: 桶在控制台可见,已取得四项配置;App 安装后按第 4 步检查连接,测试照片备份成功且云端可找到对应对象。


费用与配额


OBS 可能产生存储、请求和流量等费用,云工作区和云手机也可能消耗配额或费用。列表请求、图片缩略图和视频预览使用认证 GET 读取原对象;公网读取可能产生流出流量。按使用区域、存储类别、容量和请求量查看 OBS 计费说明与流量费用,具体价格以购买页为准。




版权与许可

MIT License


Copyright (c) 2026 小代


Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:


The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.


THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。