这是我参与11月更文挑战的第26天,活动详情查看:2021最后一次更文挑战
1.背景
最近处理了一个需求,将图片的上传方式由原来的公有上传,改为oss私有上传方式。刚开始听到的时候有点懵,什么是私有上传,oss又是什么。所以这篇文章就当作是给大家科普啦~
2.什么是对象存储oss
比较官方的解释是:对象存储OSS是在云上提供无层次结构的分布式存储产品,为用户提供单价较低且快速可靠的数据存储方案。用户可通过云服务器实例或互联网使用 Web API 接口存储和检索数据。在 OSS 上的数据,用户使用指定域名的 URL 地址,通过 HTTP/HTTPS 协议存储和检索每个独立的数据对象
简单的理解:类似银行去存钱一样。用户(前端)把钱交给银行,换来一个账户(对象的key)。用户并不用关心钱(数据)具体被存放到哪里去了(存储)。
阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高持久的云存储服务。
3.oss与普通文件系统的对比
下图为阿里云官网所出的oss与普通文件系统的对比
- 存储的优点
可扩展性高:存储空间无限,用户不用担心空间不够的问题
安全性高:对象存储通常凭借HTTP调用对象存储本身提供的认证密钥来提供数据访问
效率高:扁平化结构,不受复杂目录系统对性能的影响
成本低:与块存储方式相比,对象存储是最具成本效益的数据存储类型
访问方便:对象存储提供开放的REST API接口。在开发应用时,直接把存储参数写进代码,就可以通过API接口调用对象存储里的数据
5. OSS相关概念
a. 存储空间(Bucket)
存储空间是用户用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。存储空间具有各种配置属性,包括地域、访问权限、存储类型等。用户可以根据实际需求,创建不同类型的存储空间来存储不同的数据。
同一个存储空间的内部是扁平的,没有文件系统的目录等概念,所有的对象都直接隶属于其对应的存储空间。 每个用户可以拥有多个存储空间。 只能包括小写字母、数字和短划线(-)。 必须以小写字母或者数字开头和结尾。 长度必须在3~63字符之间。 b. 对象(Object)
对象是OSS存储数据的基本单元,也被称为OSS的文件。和传统的文件系统不同,对象没有文件目录层级结构的关系。对象由元信息(Object Meta),用户数据(Data)和文件名(Key)组成,并且由存储空间内部唯一的Key来标识。对象元信息是一组键值对,表示了对象的一些属性,比如最后修改时间、大小等信息,同时用户也可以在元信息中存储一些自定义的信息。
对象的生命周期是从上传成功到被删除为止。在整个生命周期内,除通过追加方式上传的Object可以通过继续追加上传写入数据外,其他方式上传的Object内容无法编辑,您可以通过重复上传同名的对象来覆盖之前的对象。
对象的命名规范如下:
使用UTF-8编码。 长度必须在1~1023字符之间。 不能以正斜线(/)或者反斜线(\)开头。
好了,今天先写到这里啦~