对象存储 | 青训营笔记

209 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第2篇笔记。

之前在做一个项目的时候涉及到静态资源的上传与访问,当时是直接用Nginx进行代理,将资源文件夹映射到网络路由中,但实际上这并不是常规的做法。更常规的方法还是使用对象存储,那么刚好字节青训营也有对象存储相关的课程,因此这里简要做一下笔记。

对象存储的应用背景

首先来对比一下不同的存储方案:

image.png

由上表可见,视频/图片等静态资源更多是存储在分布式存储系统中,在分布式存储中,对象存储一般用来存储图片、视频等静态资源:

image.png

image.png

最后,总结一下各种存储方案的应用场景:

  1. 对象存储(静态):视频、图片、文本、安装包、备份、前端js文件
  2. 关系型数据库:商品订单、用户信息等
  3. KV:缓存记录等
  4. 随机写:在线编辑文件等
  5. Append写:大数据计算中间结果
  6. 更新频繁:钱包余额等

对象存储的使用

目前,各大互联网厂商都推出了各自的对象存储服务,最方便的做法是申请一个对象存储服务,使用阿里云、腾讯云、字节、华为云等厂商的对象存储服务。对象存储的基本架构如下图所示:

image.png

首先在申请对象存储服务的过程其实就是申请一个Bucket,申请完成后即可使用对象存储服务。一般来说,对象存储的访问是基于Restful风格的接口,提供的基本接口如下:

  1. PUT:上传对象及其元信息
  2. GET:获取对象及其元信息
  3. HEAD:获取元信息
  4. DELETE:删除对象

展望

本文主要介绍了对象存储的介绍与使用,但实际上对象存储还可以使用MinIO等开源对象存储框架,甚至说自己开发一个对象存储框架。这部分内容涉及更深的知识,我还没来得及研究,后续会根据实际情况更新一下!