对象存储我相信并不是什么新鲜的概念,最早的时候我们采用自建NFS的方式来实现文件共享,随着云计算的发展,逐渐就衍生除了对象存储服务,华为云有OBS,阿里云有OSS,腾讯云有COS,各大云计算服务商都纷纷退出了各自的云产品。
从2017年就开始使用各大平台的对象存储产品,但是最后因为各种原因,都逐步转到了华为云的OBS产品上,个人在使用过程中也觉得OBS有它自己的特色之处,虽然华为云产品切入市场没有阿里云和腾讯云更早,但是这位后起之秀在爆发力和服务上都毫不逊色。
几年的OBS使用过程中,见证了OBS产品的不断完善和改进,本人也提出了一些体验方面的问题和建议,并且参与了OBS新功能和体验的访谈,接下来就OBS的使用跟大家一起分享分享~
点击以下链接我们就可以进入OBS官网:https://www.huaweicloud.com/product/obs.html
官方对于对象存储的定义:对象存储服务(Object Storage Service,OBS)是一个基于对象的存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,使用时无需考虑容量限制,并且提供多种存储类型供选择,满足客户各类业务场景诉求。
其主要的特点如下图所示:
进入OBS控制台,我们可以看到总览情况,对于桶的数量、存储总量、文件数量以及资源分布情况都能有个清晰的预览。
紧接着进入OBS桶列表可以看到我们创建的每个桶的详细信息:
点击桶名称进入桶管理界面
在这里我们可以进行桶的对象管理、访问权限的控制、域名的管理以及相关的配置。
相对来说操作都比较方便,在此不一一说明,仅对重点内容进行一些说明:
1)访问方式:
对于每个桶的资源访问,我们要记录其访问域名和Endpoint,即下图内容:
2)多版本控制:
在桶管理界面,我们可以开启多版本控制,当开启多版本控制后,上传或删除的所有对象都会保存在桶中,访问的时候可以加上版本号进行访问:
在对象列表-已删除对象中可以查看所有已删除的对象(前提是开启了多版本控制)
3)访问权限控制
很多时候我们需要为不同的桶和对象设置不同的访问策略,此时我们就可以用同策略或者桶ACLs来实现权限管理和控制。
在官方文档中也有详细的说明,可以参考进行配置,在此不详细展开。
4)域名管理
很多时候我们想用平台自己的域名进行对象的访问,此时可以用域名管理功能来实现
这里有个注意点:自定义域名暂时只支持HTTP访问,不支持HTTPS访问,这个时候如果你是在微信小程序中使用,那么下载图片之类的就有可能会有问题,因为微信小程序会有域名要求是HTTPS。
此时也不是没有解决办法,可以采用华为云CDN来实现HTTPS的访问
5)对象预览
进入对象管理界面,我们点击具体对象可以进行相应的预览,如下图所示:
其实在使用OBS的时候,大多数情况下,我们都是需要将原有的对象进行迁移,可能是从腾讯云COS迁移到华为云OBS,或者阿里云OSS迁移到华为云OBS,也可能是从其他各种对象存储服务平台迁移到华为云OBS,此时我们就可以用华为云提供的对象存储迁移服务来进行迁移。
点击创建迁移任务,配置好相应的源端和目的端信息,即可开启迁移任务
迁移过程中我们也可以查看迁移的进度情况。
最重要的是我们可以通过参数配置针对哪些对象进行迁移,或者以时间节点进行增量迁移,可以实现增量同步的需求。
当然,很多时候如果需要从云存储下载到本地进行不定期的同步备份,我们也可以在本地通过obsutil或者OBS Browser+来实现,下面就简单用obsutil来举例:
#一、下载obsutil,执行如下命令:
wget https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsutil/current/obsutil_linux_amd64.tar.gz
#二、在软件包所在目录,执行以下解压命令:
tar -xzvf obsutil_linux_amd64.tar.gz
#三、进入obsutil所在目录,执行以下命令,为obsutil增加可执行权限:(如果是root用户操作,本步骤可以忽略)
chmod 755 obsutil
#四、使用永久AK、SK进行初始化配置:(AK/SK在我的凭证中获取)
./obsutil config -i=ak -k=sk -e=endpoint
#五、验证连通性,执行如下命令:
./obsutil ls -s
#六、下载指定桶所有文件到指定位置,执行如下命令
./obsutil cp obs://bucket-test/src2 /src1 -r -f
#注:如果src1目录为空,则会将obs的src2目录下文件全量下载;如果src1不为空,则下载过程中如果存在相同目录相同名称相同类型的文件时会覆盖源文件
至于单个对象下载、上传文件、桶的相关操作,再次不一一详述,可以参考官方文档(https://support.huaweicloud.com/utiltg-obs/obs_11_0001.html)
1)在实际迁移过程中会发现,虽然OBS支持多版本控制,但是在迁移的时候并不支持将多版本的文件一并进行迁移,这个我觉得还是可以进行改进的,本人也已经提交了云声建议,具体可以参见以下链接:
2)在迁移成功后我们会发现,并不知道迁移前后的数据是否一致,只能看到迁移进度,希望能够增加一个数据前后的比对功能,这个类似于数据库同步服务DRS中的数据比对功能,该建议也可以参考上述链接。
华为云OBS目前新建桶中图片预览链接在浏览器中打开时无法预览,而是会跳出下载框,只能下载后查看,这个对于调试或测试来说就显得不是特别友好了。个人记得以前的版本是没有问题的,可以直接打开预览。
后来联系了华为云官方,回复是2021年6月份起,所有的图片预览都变成了下载,如果需要预览,可以用第三章节中提到的自定义域名来实现。
当开启多版本后,删除的对象会在已删除对象中显示,但是当去已删除对象中查看时,会发现如下神奇的展示:
这个我也在华为云声中提了建议,具体可以参见如下链接:
不过这个问题可能一直没有引起官方的重视,没有采纳,后来我记得有一次做线上的访谈,说问题已修复,然后我直接演示,发现还是存在这个问题。。。尴尬了。。。
控制台显示对象数量以及存储用量与SDK获取的数据不一致(length折算后=1.8178G)
控制台显示数据:
SDK代码获取的数据:
最后华为云官方给出的答复应该是统计口径不一致,比如对象数量可能是包含所有的文件夹,而调用接口的时候应该是只统计文件数量,存储用量官方应该是包含了多版本控制开启下的已删除对象的用量,因此统计结果也会出现差异。
具体大家也可以看下官方是怎么回复的:
使用华为云的OBS产品也有好多年了,虽然也出现过一些小问题,比如偶尔的网络问题、或者是机房割接导致无法访问等,亦或者是上述提到的一些问题,但是基本上不影响实际使用,并且华为云官方和相关技术人员也都能够快速的提供支持,这点对于很多的用户来说是至关重要的。
希望华为云OBS产品能够越来越好,让更多的用户可以享受高质量、高可靠、稳定的产品。
最后也给大家分享一下网络上有关华为云OBS、腾讯云COS和阿里云OSS的对比的文章,大家也可以参考下:
国内三大云服务对象存储横评:阿里/腾讯/华为谁更强?