这是我参与「第三届青训营 -后端场」笔记创作活动的的第2篇笔记。
之前在做一个项目的时候涉及到静态资源的上传与访问,当时是直接用Nginx进行代理,将资源文件夹映射到网络路由中,但实际上这并不是常规的做法。更常规的方法还是使用对象存储,那么刚好字节青训营也有对象存储相关的课程,因此这里简要做一下笔记。
对象存储的应用背景
首先来对比一下不同的存储方案:
由上表可见,视频/图片等静态资源更多是存储在分布式存储系统中,在分布式存储中,对象存储一般用来存储图片、视频等静态资源:
最后,总结一下各种存储方案的应用场景:
- 对象存储(静态):视频、图片、文本、安装包、备份、前端js文件
- 关系型数据库:商品订单、用户信息等
- KV:缓存记录等
- 随机写:在线编辑文件等
- Append写:大数据计算中间结果
- 更新频繁:钱包余额等
对象存储的使用
目前,各大互联网厂商都推出了各自的对象存储服务,最方便的做法是申请一个对象存储服务,使用阿里云、腾讯云、字节、华为云等厂商的对象存储服务。对象存储的基本架构如下图所示:
首先在申请对象存储服务的过程其实就是申请一个Bucket,申请完成后即可使用对象存储服务。一般来说,对象存储的访问是基于Restful风格的接口,提供的基本接口如下:
- PUT:上传对象及其元信息
- GET:获取对象及其元信息
- HEAD:获取元信息
- DELETE:删除对象
展望
本文主要介绍了对象存储的介绍与使用,但实际上对象存储还可以使用MinIO等开源对象存储框架,甚至说自己开发一个对象存储框架。这部分内容涉及更深的知识,我还没来得及研究,后续会根据实际情况更新一下!