前言
MinIO 是一款非常热门的开源对象存储服务器,能够完美兼容亚马逊的 S3 协议, 对 K8s 也能够进行非常友好的支持,专为 AI 等云原生工作负载而设计。包括构建高性能的云原生数据机器学习、大数据分析、海量存储的基础架构等方面,MinIO 都可以提供数据工作负载。有数据统计,在*,很多企业,比如阿里巴巴、腾讯、百度、中国联通、华为、中国移动等9000多家企业也都在使用 MinIO 产品。
MinIO 简单介绍
MinIO 如此受欢迎,肯定是有原因的。那么,具体的原因都有哪些呢?接下来我们就来看一看。
- 高性能。MinIO 是全球领先的对象存储服务先锋,目前在全世界有数百万的用户。在标准硬件上,读/写速度上高达183 GB / 秒 和 171 GB / 秒。
- 可扩展性。MinIO 借鉴了 Web 缩放器,为对象存储带来了简单的缩放模型。在部署 MinIO 时, 扩展从单个群集开始,
- 云原生支持。MinIO 是在过去4年的时间内从0开始打造的一款软件,符合一切原生云计算的架构和构建过程,并且包含最新的云计算的全新的技术和概念。
- 纯开源。MinIO 基于Apache V2 license 100% 开放源代码。 这就意味着 MinIO 的客户能够自动的、无限制、*免费使用和集成 MinIO、*的创新和创造、*的去修改、*的再次发行新的版本和软件。
- 兼容 S3 存储。亚马逊云的 S3 API(接口协议)是在全球范围内达到共识的对象存储的协议,是全世界内大家都认可的标准。
- 简单。极简主义是 MinIO 的指导性设计原则。简单性减少了出错的机会,提高了正常运行时间,提供了可靠性,同时简单性又是性能的基础。本人在自己的项目中就使用到 MinIO,用于存储文件对象,在使用方面,基本上和阿里云的 OSS、腾讯云的 COS 差不太多,上手非常快。
API 介绍
操作存储桶
存储桶可以理解成是用来分离存储数据的数据容器,关于存储桶的API接口主要有下面几个:
- MakeBucket,创建存储桶
- ListBuckets,查询当前存储桶列表
- BucketExists,判断存储桶是否存在
- RemoveBucket,删除存储桶
- ListObjects,列举存储桶中所有的对象
- ListObjectsV2,列举存储桶中所有的对象(V2版本)
- ListIncompleteUploads,查询存储桶中未完整上传的对象列表
存储桶策略
存储桶的相关策略,具体接口如下:
- SetBucketPolicy,设置存储桶或者对象的访问权限,其中权限类型有 None、只读、只写、可读可写。
- GetBucketPolicy,查询存储桶或者对象的访问权限。
操作文件对象
文件存储对象的操作行为,具体接口如下:
- FPutObject,把指定文件上传到一个对象中。当对象小于 128MB 时,会调用一次 PUT 请求进行上传。当大于 128MB 时,会根据文件的实际大小自动拆分成 128MB 一块或更大一些的块儿进行上传。需要注意是对象的最大大小是 5TB。
- FGetObject,下载文件并将文件保存到本地文件系统。
- FPutObjectWithContext,和 FPutObject 接口操作是一样的,不过允许取消上传请求。
- FGetObjectWithContext,和 FGetObject 接口操作是一样的,不过允许取消下载请求。
操作对象
一般存储对象的操作行为,具体接口如下:
- GetObject,下载对象
- PutObject,上传对象
- GetObjectWithContext,和 GetObject 接口操作是一样的,不过允许取消下载请求。
- PutObjectWithContext,和 PutObject 接口操作是一样的,不过允许取消上传请求。
- StatObject,获取对象的数据信息。
- CopyObject,对象拷贝
- RemoveObject,删除对象
- RemoveObjects,删除对象集合
- RemoveIncompleteUpload,删除未完整上传的对象。
结尾
MinIO 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinIO 是一个非常轻量的服务,可以很简单的和其他应用的结合。
作者简介:????大家好,我是 Data-Mining(liuzhen007),是一位典型的音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解,????公众号:玩转音视频。同时也是 CSDN 博客专家、华为云享专家(共创编辑)、InfoQ 签约作者,欢迎关注我分享更多干货!????