支撑20亿+用户变美,看华为云OBS对象存储服务与美图的合作

华为云对象存储服务OBS提供海量、低成本、高可靠和高安全的数据存储,适用于多种场景。OBS解决了美图的数据库承载、用户量处理和大量存储问题,提高其运行质量并降低数据运营成本。通过与MapReduce服务融合,华为云OBS助力企业如美图实现大数据解决方案,提升用户服务和商业竞争力。华为云持续开放、合作,为企业提供安全的云存储服务。

无论是生活上还是日常工作中,重要数据的存储都是必不可少的,想要将数据更加安全、可靠地存储起来,OBS对象存储服务会是最佳选择。

华为云对象存储服务是基于对海量的数据储存建立的存储服务项目,它能为您提供海量、低成本、高可靠、高安全的数据存储能力。OBS可存放任意类型的文件,用户可以随时随地访问并管理存储在OBS中的数据。对象存储服务OBS适合普通用户、网站、企业和开发者,关于技术问题无需担忧,当然也无需关注底层存储技术的问题,试者同样也可以很好地应用此项服务。OBS可用于构建海量存储资源池、企业云云盘、静态网站托管、云硬盘备份、视频监控归档及弹性大数据等应用场景与企业云自建存储系统。

华为云OBS与MapReduce服务融合的独家创新架构,更是为美图提供BigData Pro大数据解决方案。其中解决了以下三个主要问题:一是美图的数据库框架无法承载众多的用户量,二是美图用户使用频次多,三是美图使用存储量大的问题。华为云OBS高安全数据存储能力能够帮助美图解决负载不均、热点不稳定性的问题,同时也能承载美图多用户的特性,使其高质量运行。

此前美图的数据集群资源利用率较低,在重叠数据的数据里面很难实现自动分辨识别存储。华为云OBS协助美图区分计算和存储不同的数据增长情况,减少了存储浪费、网络传输频繁的现象,实现了美图增量同步、海量存储的多样化场景服务,切实帮助美图改善数据量维运成本。

美图公司协同华为云OBS为20亿+的用户提供实时美图支持,实现美图AI和大数据公云基础设计、计算力、存储资源的耦合。华为云OBS更是助力美图在用户量、用户活力度、用户粘性、用户忠诚度等方面提升了极大的竞争优势,同时还提高了企业的商业变现能力,拓展了业务的发展。

通过一个简单的案例,我们能更加直观地了解华为云存储数据的整合效力。在此过程中,华为云不断总结经验、梳理场景,并与客户一起探索,把典型客户的个性化需求与实践变成更具推广价值的行业通用经验,并在不同行业中加速创新和应用。

巩固企业稳定发展离不开战略伙伴的持续协同,多级保障更能够保障企业安全顺风使船。个人开发者、小企业、大公司在有需求时就应火速行动,只有做好预备把关工作才能更进一步发展业务,对象存储OBS让数据无死角把控,海量存储放心用。华为一直都秉持着“以用户为本”的初心,构建出持续开放、合作、共赢的服务平台,快联合华为一步解忧愁吧。

正值华为云双12,12月31日前,华为云多款云计算产品和解决方案帮助企业破解上云实际问题,助力企业降本增效。

### 华为云OBS对象存储Java SDK使用指南 #### 依赖引入 为了能够在项目中集成并使用华为云OBS对象存储服务,需先在项目的`pom.xml`文件里加入如下Maven依赖: ```xml <dependency> <groupId>com.huaweicloud</groupId> <artifactId>esdk-obs-java</artifactId> <version>3.21.12</version> </dependency> ``` 此版本号可能随时间更新而变化,请查阅官方文档获取最新版次[^1]。 #### 初始化客户端 创建ObsClient实例用于后续操作前,应确保已设置好环境变量或配置文件中的认证信息(Access Key ID 和 Secret Access Key),以便成功连接至华为云账户下的资源。以下是初始化代码片段: ```java import com.obs.services.ObsClient; // ... String ak = "your-access-key-id"; String sk = "your-secret-access-key"; String endpoint = "https://your-endpoint"; ObsClient obsClient = new ObsClient(ak, sk, endpoint); ``` 此处endpoint参数取决于所选区域的服务地址,具体可参见官方文档说明。 #### 文件上传功能实现 利用上述构建好的ObsClient对象执行PUT请求完成文件上传动作,下面是一段简单的例子展示如何将本地路径指定的一个文件上传到特定桶内: ```java import java.io.File; public void uploadFile(String bucketName, String objectKey, File file){ try { PutObjectResult putObjectResult = obsClient.putObject(bucketName, objectKey, file); System.out.println("Etag:" + putObjectResult.getETag()); System.out.println("VersionId:" + putObjectResult.getVersionId()); } catch (Exception e) { e.printStackTrace(); } } ``` 这段程序会打印出返回的etag以及版本ID作为确认标志。 #### 文件下载逻辑编写 对于从OBS拉取数据而言,则可通过调用get方法来达成目的;这里提供了一个基础示例用来读取远端对象的内容流,并将其保存成新的本地文件形式: ```java import java.nio.file.Files; import java.nio.file.Paths; public void downloadFile(String bucketName, String objectKey, String localFilePath){ try{ ObjectMetadata metadata = obsClient.getObject(new GetObjectRequest(bucketName, objectKey), Paths.get(localFilePath)); System.out.println("Content-Type: " + metadata.getContentType()); }catch(Exception ex){ ex.printStackTrace(); } } ``` 该函数接收三个字符串类型的参数分别代表目标容器名称、待检索键名及期望存放位置,最终输出的是HTTP响应头里的content-type字段值。 #### 资源管理清理工作 当不再需要某个已经存在的bucket或者想要移除其中部分object时,可以借助deleteBucket/deleteObjects API接口来进行相应处理。需要注意的是,在实际应用环境中应当谨慎对待这些命令以免误删重要资料。 ```java // 删除单个对象 DeleteObjectResult deleteObjectResult = obsClient.deleteObject(bucketName, objectKey); // 批量删除多个对象 List<String> keysToDelete = Arrays.asList("key1", "key2"); DeleteObjectsResponse response = obsClient.deleteObjects( DeleteObjectsRequest.builder() .withQuiet(false) .addKeys(keysToDelete.toArray(new String[0])) .build(), bucketName); ``` 以上即是对华为云OBS对象存储服务基本使用的介绍,涵盖了SDK接入准备阶段直至常见CRUD操作的具体实践过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值