web项目文件存取思路2——对象存储| 青训营

193 阅读4分钟

介绍

随着图像、音频、视频等这样的非结构化数据爆炸式增长,传统的基于物理块的存储方式(DAS、SAN),以及基于文件的存储方式(NAS)已经无法有效应对这样的数据量,对象存储技术应运而生。

对象存储Object Storage Service,OSS)也可以称之为云存储或基于对象的存储,目前市面上阿里、腾讯、百度、七牛等公司都有相关的产品。

对象存储可提供基于分布式系统之上的对象形式的数据存储服务。并常以网络服务的形式提供数据的访问。

组成

对象存储的bucket(桶)作为存储的容器。Object(对象)是OSS存储数据的基本单元,也被称为OSS的文件。和传统的文件系统不同,Object没有文件目录层级结构的关系。每个Object包括三个部分:Key、Data、Metadata。

与数据库相对应抽象地去理解即为

oss数据库
bucket数据库表(但数据库表不从属于一个数据库下,是独立的关系。一定程度上也可抽象为数据库)
object表记录
key主键

Object组成部分

  • Key

对象的全局唯一标识符(UID),相当于文件名,在一个bucket中不能重复。

通常利用包含key的url即可访问到该对象,不需要知道其的物理地址。

  • Data

也就是用户数据本体

  • Metadata

元数据,可以理解为对象的标签。元数据独立出来,并不存储在对象数据内部。元数据可以加快对象的排序,还有分类和查找。

对象存储使用

以下以阿里云oss为例,介绍对象存储的使用。

试用/购买套餐

如果为新用户阿里云有免费的3个月oss试用,若仅用于学习购买oss资源包的最低配(标准-本地冗余+中国大陆+40G+6个月)即可。腾讯云也有存储容量更小、时长更短的配置卖,最低不到一元。 image.png

创建bucket

进入控制台,点击bucket列表创建bucket。按照购买或试用套餐的规格选择(不要选错了,会按量计费)。 Bukcet的名称是OSS范围内全局唯一的,且创建后不能更改。记录下endpoint的值,后续有用到。 image.png

查看bucket

点击bucket,即进入到bucket文件列表空间,可以可视化查看其中包含的文件及其文件相关属性。利用url可以直接访问到文件。 image.png 要注意的是文件的文件名在一个bucket中是唯一的,如果上传了同名的文件将会把旧的同名文件替换掉。 且url以oss默认域名访问则会产生下载形式,若想直接显示该文件资源则需要使用自己的域名并进行相关配置。

优缺点

优点:

  1. 可伸缩性:对象存储可以轻松扩展以适应大规模数据的存储需求。它可以处理数百甚至数千个存储节点,并支持横向扩展,无需中断服务。
  2. 高可用性:对象存储通常采用冗余机制来确保数据的高可用性。数据会被多次复制并存储在不同的位置,以防止单点故障导致的数据丢失。
  3. 强大的元数据管理:对象存储可以为每个对象存储大量的元数据信息。这些元数据可以用于搜索、分类和组织数据,提供更高效的数据管理和检索。
  4. 跨平台兼容性:对象存储不依赖于特定的文件系统或操作系统,因此可以在不同的平台上使用和访问数据。这使得数据的共享和迁移更加便捷。

缺点:

  1. 相对较高的延迟:与本地存储相比,对象存储的访问延迟较高。这是因为数据需要通过网络进行传输和检索,而不是直接从本地磁盘读取。
  2. 有限的实时性:对象存储通常不适合对数据进行实时更新和修改。它更适用于长期存储和归档,而不是频繁的读写操作。
  3. 复杂的管理:对象存储的管理和配置可能相对复杂,特别是在处理大规模数据和多个存储节点时。需要专业的管理工具和技术来确保数据的安全性和可靠性。

------后续内容接下一篇------