OSS初步

各大公有云厂商对对象存储的定义:亚马逊(AWS S3),腾讯云(COS),阿里云(OSS),华为云(OBS),百度云(BOS),网易(NOS),快快云(OSS)。对象存储是由AWS首先推出的一个存储产品形态,AWS的S3协议也成为对象存储事实标准,各个云存储厂商的云存储服务协议都兼容S3。

OSS初步

作者:木鱼精灵
时间:2023年10月26日 (星期四) 22:02:04

各大公有云厂商对对象存储的定义:亚马逊(AWS S3),腾讯云(COS),阿里云(OSS),华为云(OBS),百度云(BOS),网易(NOS),快快云(OSS)。对象存储是由AWS首先推出的一个存储产品形态,AWS的S3协议也成为对象存储事实标准,各个云存储厂商的云存储服务协议都兼容S3。

OSS是阿里云对象存储服务(Object Storage Service)的一个简称,它是阿里云提供的海量、安全、低成本、高可靠的云存储服务。OSS在可靠性、安全性、成本和数据处理能力方面都有着突出的优势。使用OSS,您可以通过网络随时存储和调用包括文本、图片和视频等在内的各种非结构化数据文件。

一、OSS术语

1.存储空间(Bucket)
存储空间是您用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。

2.对象/文件(Object)
对象是 OSS 存储数据的基本单元,也被称为OSS的文件。对象由元信息(Object Meta)、用户数据(Data)和文件名(Key)组成。对象由存储空间内部唯一的Key来标识。

3.地域(Region)
地域表示 OSS 的数据中心所在物理位置。您可以根据费用、请求来源等综合选择数据存储的地域。详情请查看OSS已经开通的Region。

4.访问域名(Endpoint)
Endpoint 表示OSS对外服务的访问域名。OSS以HTTP RESTful API的形式对外提供服务,当访问不同地域的时候,需要不同的域名。通过内网和外网访问同一个地域所需要的域名也是不同的。具体的内容请参见各个Region对应的Endpoint。

5.访问密钥(AccessKey)
AccessKey,简称 AK,指的是访问身份验证中用到的AccessKeyId 和AccessKeySecret。OSS通过使用AccessKeyId 和AccessKeySecret对称加密的方法来验证某个请求的发送者身份。AccessKeyId用于标识用户,AccessKeySecret是用户用于加密签名字符串和OSS用来验证签名字符串的密钥,其中AccessKeySecret 必须保密。

二、OSS特性

优点:OSS适合存储静态资源,如图像、电影、备份文件和日志。如果内置的CDN集成,可以缓存资产以加快页面加载速度,使用数据对象存储元数据片段的能力简化了应用程序体系结构。
缺点:对象存储不允许按片段更改数据。只能修改整个对象,不适用于数据经常变化的应用。
特点:SAN(块存储) 和 NAS(文件存储)都是面向数据中心内访问的设备,而OSS(对象存储)是面向互联网、移动互联网(3G、4G、5G)而产生的,为大量使用的网页、视频、图片、音频、文档访问而设计。

OSS是一个分布式的对象存储服务,将数据文件以对象/文件(Object)的形式上传到存储空间(Bucket)中,提供的是一个Key-Value对形式的对象存储服务。用户可以根据Object的名称(Key)唯一地获取该Object的内容。虽然用户可以使用类似test1/test.jpg的名字,但是这并不表示用户的Object是保存在test1目录下面的。对于OSS来说,test1/test.jpg仅仅只是一个字符串,和a.jpg这种并没有本质的区别。因此不同名称的Object之间的访问消耗的资源是类似的。

对于OSS来说,可以通过一些操作来模拟类似的功能,但是代价非常昂贵。比如重命名目录,希望将test1目录重命名成test2,那么OSS的实际操作是将所有以test1/开头的Object都重新复制成以test2/开头的Object,这是一个非常消耗资源的操作。因此在使用OSS的时候要尽量避免类似的操作。

OSS保存的Object不支持修改(追加写Object需要调用特定的接口,生成的Object也和正常上传的Object类型上有差别)。用户哪怕是仅仅需要修改一个字节也需要重新上传整个Object。而文件系统的文件支持修改,比如修改指定偏移位置的内容、截断文件尾部等,这些特点也使得文件系统拥有广泛的适用性。但另外一方面,OSS能支持海量的用户并发访问,而文件系统会受限于单个设备的性能。

因此,将OSS映射为文件系统是非常低效的,也是不建议的做法。如果一定要挂载成文件系统的话,建议尽量只做新建文件、删除文件、读取文件这几种操作。使用OSS应该充分发挥其优点,即海量数据处理能力,优先用来存储海量的非结构化数据,比如图片、视频、文档等。