对象存储的基本概念
什么是对象存储
- 对象存储(Object Storage)是一种基于对象(Object)的存储设备,具备智能、自我管理能力,通过web服务协议 (如:REST、SOAP)实现对象的读写和存储资源的访问。
- 对象是系统中数据存储的基本单位,一个对象实际上就是文件的数据和一组属性信息(Meta Data)的组合,每个对象是数据和数据属性集的综合体,数据属性可以根据应用的需求进行设置,包括数据分布、服务质量等。
- 对象存储没有文件目录层级结构的关系,对象由元信息(Object Meta),用户数据(Data)和文件名(Key)组成,并且由存储空间内部唯一的Key来标识。
对象存储与其他存储方式的对比
-
传统的文件系统是基于文件(File)和目录(Directory)的存储方式,文件是数据的载体,目录是文件的组织形式,文件系统通过目录树来管理文件。
-
文件系统存在以下缺点:
- 容量:文件系统受到单个磁盘或分区的容量限制,无法容纳海量数据。
- 性能:文件系统在处理大量小文件时会产生大量元数据操作,导致性能下降。
- 扩展:文件系统难以实现水平扩展,需要手动进行分区管理和负载均衡。
- 可靠:文件系统在遇到硬件故障时会导致数据丢失或不一致。
-
数据库是基于记录(Record)和表(Table)的存储方式,记录是数据的最小单位,表是记录的集合,数据库通过SQL语言来操作数据。
-
数据库存在以下缺点:
- 复杂:数据库需要预先定义数据模型和约束条件,不适合非结构化或半结构化数据。
- 昂贵:数据库需要购买专业的硬件和软件设备,成本较高。
- 兼容:数据库之间存在不同的标准和规范,难以实现跨平台访问。
-
分布式存储是基于块(Block)或条带(Stripe)的存储方式,块或条带是数据的最小单位,分布式存储通过多台服务器来分散存储数据。
-
分布式存储存在以下缺点:
- 复杂:分布式存储需要维护多台服务器之间的通信和同步,涉及到复杂的算法和协议。
- 开销:分布式存储需要消耗额外的网络带宽和计算资源来保证数据一致性和可用性。
-
对象存储则克服了以上存储方式的缺点,具有以下优势:
- 海量:对象存储可以容纳海量数据,无需分区管理,无容量上限。
- 稳定:对象存储提供数据跨多架构、多设备冗余存储,为用户数据提供异地容灾和资源隔离功能,实现高达99.9999999999%的数据持久性和99.995%的可用性。
- 安全:对象存储提供防盗链、数据加密、监控告警等功能综合保护数据安全。
- 成本:对象存储支持按需按量使用,无需预先支付任何预留存储空间的费用,通过生命周期管理进行数据降冷,进一步降低成本。
- 简单:对象存储提供图形化程序、命令行工具、协议工具等多种途径对存储对象进行批量操作,让使用更为简单。
- 便捷:对象存储提供丰富的 SDK 接入工具,简单且可靠,同时提供了线上、线下多种迁移服务,让您的业务快速上云。
- 集成:对象存储支持与其他云产品联动,包括 CDN 加速、数据万象图片处理、音视频转码、文件预览等组件,提供「存储 + 处理」一体化解决方案。
对象存储的使用方法
如何创建一个对象存储空间
-
对象存储空间(Bucket)是用户用于存储对象(Object)的容器,所有的对象都必须隶属于某个空间。
-
空间具有各种配置属性,包括地域、访问权限、存储类型等。
-
用户可以根据实际需求,创建不同类型的空间来存储不同的数据。
-
创建空间的步骤如下:
- 登录对象存储控制台
- 在左侧导航栏中单击空间列表
- 单击创建空间
- 输入空间名称(必须唯一)
- 选择所属地域(最好与业务最近)
- 选择访问权限(默认为私有读写)
- 选择存储类型(默认为标准存储)
- 单击确定,即可创建完成
如何上传和下载对象
-
上传对象的方法有多种,例如使用控制台、COSBrowser、SDK、API等。
-
以使用控制台为例,上传对象的步骤如下:
- 登录对象存储控制台
- 在左侧导航栏中单击空间列表
- 选择需要上传对象的空间,单击其名称
- 在左侧导航栏中单击文件列表
- 单击上传文件,选择文件或拖拽文件到上传区域
- 单击上传,即可将文件上传到空间
-
下载对象的方法也有多种,例如使用控制台、COSBrowser、SDK、API等。
-
以使用控制台为例,下载对象的步骤如下:
- 登录对象存储控制台
- 在左侧导航栏中单击空间列表
- 选择需要下载对象的空间,单击其名称
- 在左侧导航栏中单击文件列表
- 找到需要下载的对象,单击其右侧的详情
- 在基本信息配置项中,单击下载对象或复制临时链接
我的个人想法
- 我认为跨域访问是一个非常有用的功能,它可以让用户在不同的网站上方便地使用对象存储空间中的数据,例如图片、视频、音频等。
- 我觉得设置跨域访问的方法并不复杂,只要按照规则填写相关的配置信息,就可以实现跨域资源共享。
- 我感兴趣的是跨域访问与其他云产品的集成能力,比如如何利用 CDN 加速来提高跨域数据分发效率,或者如何利用数据万象来对跨域图片和视频进行处理。