开源对象存储服务MinIO的入门介绍

举报
liuzhen007 发表于 2021/08/26 20:38:31 2021/08/26
【摘要】 目录前言正文MinIO 简单介绍API 介绍 操作存储桶 存储桶策略 操作文件对象 操作对象结尾 前言MinIO 是一款非常热门的开源对象存储服务器,能够完美兼容亚马逊的 S3 协议, 对 K8s 也能够进行非常友好的支持,专为 AI 等云原生工作负载而设计。包括构建高性能的云原生数据机器学习、大数据分析、海量存储的基础架构等方面,MinIO 都可以提供数据工作负载。有数据统计,在中国大陆,...

目录

  • 前言
  • 正文
  • MinIO 简单介绍
  • API 介绍
     操作存储桶
     存储桶策略
     操作文件对象
     操作对象
  • 结尾

前言

MinIO 是一款非常热门的开源对象存储服务器,能够完美兼容亚马逊的 S3 协议, 对 K8s 也能够进行非常友好的支持,专为 AI 等云原生工作负载而设计。包括构建高性能的云原生数据机器学习、大数据分析、海量存储的基础架构等方面,MinIO 都可以提供数据工作负载。有数据统计,在中国大陆,很多企业,比如阿里巴巴、腾讯、百度、中国联通、华为、中国移动等9000多家企业也都在使用 MinIO 产品。

MinIO 简单介绍

MinIO 如此受欢迎,肯定是有原因的。那么,具体的原因都有哪些呢?接下来我们就来看一看。

  1. 高性能。MinIO 是全球领先的对象存储服务先锋,目前在全世界有数百万的用户。在标准硬件上,读/写速度上高达183 GB / 秒 和 171 GB / 秒。

  2. 可扩展性。MinIO 借鉴了 Web 缩放器,为对象存储带来了简单的缩放模型。在部署 MinIO 时, 扩展从单个群集开始,

  3. 云原生支持。MinIO 是在过去4年的时间内从0开始打造的一款软件,符合一切原生云计算的架构和构建过程,并且包含最新的云计算的全新的技术和概念。

  4. 纯开源。MinIO 基于Apache V2 license 100% 开放源代码。 这就意味着 MinIO 的客户能够自动的、无限制、自由免费使用和集成 MinIO、自由的创新和创造、自由的去修改、自由的再次发行新的版本和软件。

  5. 兼容 S3 存储。亚马逊云的 S3 API(接口协议)是在全球范围内达到共识的对象存储的协议,是全世界内大家都认可的标准。

  6. 简单。极简主义是 MinIO 的指导性设计原则。简单性减少了出错的机会,提高了正常运行时间,提供了可靠性,同时简单性又是性能的基础。本人在自己的项目中就使用到 MinIO,用于存储文件对象,在使用方面,基本上和阿里云的 OSS、腾讯云的 COS 差不太多,上手非常快。

API 介绍

操作存储桶

存储桶可以理解成是用来分离存储数据的数据容器,关于存储桶的API接口主要有下面几个:

  1. MakeBucket,创建存储桶
  2. ListBuckets,查询当前存储桶列表
  3. BucketExists,判断存储桶是否存在
  4. RemoveBucket,删除存储桶
  5. ListObjects,列举存储桶中所有的对象
  6. ListObjectsV2,列举存储桶中所有的对象(V2版本)
  7. ListIncompleteUploads,查询存储桶中未完整上传的对象列表

存储桶策略

存储桶的相关策略,具体接口如下:

  1. SetBucketPolicy,设置存储桶或者对象的访问权限,其中权限类型有 None、只读、只写、可读可写。
  2. GetBucketPolicy,查询存储桶或者对象的访问权限。

操作文件对象

文件存储对象的操作行为,具体接口如下:

  1. FPutObject,把指定文件上传到一个对象中。当对象小于 128MB 时,会调用一次 PUT 请求进行上传。当大于 128MB 时,会根据文件的实际大小自动拆分成 128MB 一块或更大一些的块儿进行上传。需要注意是对象的最大大小是 5TB。
  2. FGetObject,下载文件并将文件保存到本地文件系统。
  3. FPutObjectWithContext,和 FPutObject 接口操作是一样的,不过允许取消上传请求。
  4. FGetObjectWithContext,和 FGetObject 接口操作是一样的,不过允许取消下载请求。

操作对象

一般存储对象的操作行为,具体接口如下:

  1. GetObject,下载对象
  2. PutObject,上传对象
  3. GetObjectWithContext,和 GetObject 接口操作是一样的,不过允许取消下载请求。
  4. PutObjectWithContext,和 PutObject 接口操作是一样的,不过允许取消上传请求。
  5. StatObject,获取对象的数据信息。
  6. CopyObject,对象拷贝
  7. RemoveObject,删除对象
  8. RemoveObjects,删除对象集合
  9. RemoveIncompleteUpload,删除未完整上传的对象。

结尾

MinIO 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinIO 是一个非常轻量的服务,可以很简单的和其他应用的结合。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。