随着信息化时代的不断发展,数据的增长速度比以往任何时候都快,其中大部分数据是非结构化的:视频、电子邮件、文件、数据备份、监控流、基因组学等等。
数据大小不再是以前的kb、mb,更多的是gb、tb,甚至pb级别,对象存储应运而生,对象存储系统专为 PB 级的数据而设计的。
什么是对象存储?
对象存储,也称为基于对象的存储,是一种将数据存储寻址和操作为离散单元的方法,对象保存在单个存储库中,并且不会作为文件嵌套在其他文件夹中的文件夹中。
对象存储开发于 1990 年代中期,主要是为了解决可伸缩性问题,早期开发的传统文件和块存储不具备处理当今生成的大量数据(通常是非结构化且不易组织的数据)的能力,由于文件和块存储使用层次结构,因此随着数据存储从千兆字节和太字节增长到 PB 甚至更多,数据访问速度会变慢。
对象存储可根据需要快速轻松地扩展,即使面对巨大的 PB 和 EB 负载也是如此,不管存储了多少对象,它们都被放置在一个单一的命名空间中,它可以分布在各种硬件和地理位置,并且系统可以继续访问这个不断增长的池中的任何对象,而完全不会影响性能。
在对象存储中,家喻户晓的协议便是S3协议,下面我们来详细的介绍一下S3。
什么是S3?
- 英文全称:
Amazon Simple Storage Service
- 中文意思:亚马逊简单存储服务
我们可以看出S3是Amazon公司的产品,亚马逊网络服务 (AWS) 已成为公共云计算中的主导服务,Amazon 在 2006 年首次提供S3,如今,该系统存储了数十万亿个对象,单个对象的大小范围可以从几千字节到 5TB,并且对象被排列成称为“桶”的集合。
S3协议
多年来,Amazon S3 接口已经发展成为一个非常强大的数据管理接口,与传统的文件系统接口不同,它为应用程序开发人员提供了一种通过丰富的 API 集控制数据的方法。
这些方法慢慢的发展成了S3协议,在国内外很多云存储厂商都是基于S3协议,并且都支持通用的S3接口,比如国内著名的阿里云的oss、腾讯云的cos、华为云的obs等等。
S3 API
S3 API 是一个应用程序编程接口,提供在 S3 中存储、检索、列出和删除对象的能力。
还有其他功能,比如:元数据、多租户、安全和策略、生命周期管理、原子更新、搜索、日志记录、通知、复制、加密、计费等。
可以说国内阿里云、腾讯云、华为云等厂商的云存储已经与标准的S3功能对齐,基本上该有的都有。
S3 SDK
S3 SDK目前已经支持:
所以对于绝大多数的公司来说,已经非常方便开发者去调用了。
总结
S3的诞生绝不是偶然,是数据的爆炸增长和技术的不断推进的结果,国外用亚马逊、谷歌云等支持S3协议的比较多,国内用阿里云、腾讯云、华为云的比较多。