开源存储服务MinIO的入门介绍(0)

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

前言

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 是一个非常轻量的服务,可以很简单的和其他应用的结合。



作者简介:😄大家好,我是 Data-Mining(liuzhen007),是一位典型的音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解,😄公众号:玩转音视频。同时也是 CSDN 博客专家、华为云享专家(共创编辑)、InfoQ 签约作者,欢迎关注我分享更多干货!😄

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
存储 负载均衡 安全
分布式文件系统实战,使用MinIO构建分布式文件系统!
随着文件数据的越来越多,传统的文件存储方式通过tomcat或nginx虚拟化的静态资源文件在单一的服务器节点内已经无法满足系统需求,也不利于文件的管理和维护,这就需要一个系统来管理多台计算机节点上的文件数据,这就是分布式文件系统。
3885 0
分布式文件系统实战,使用MinIO构建分布式文件系统!
|
存储 Kubernetes Linux
基于MinIO搭建高性能文件服务器
基于MinIO搭建高性能文件服务器
858 0
基于MinIO搭建高性能文件服务器
|
安全 应用服务中间件 网络安全
开源对象存储Minio部署篇
MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。(摘自minio中文站点https://docs.min.io/cn/ 里面有很详细的介绍)。minio部署简单易用,分布式方式部署可以水平扩容且数据分散存储在所有节点上,只要在线节点N/2数据就非常安全,这类似raid6,不同的是卷级别和对象级别,使用方式有网页端、linux端工具mc、多语言SDK。
1309 0
开源对象存储Minio部署篇
|
存储 Java 中间件
【分布式技术专题】「OSS中间件系列」Minio的文件服务的存储模型及整合Java客户端访问的实战指南
【分布式技术专题】「OSS中间件系列」Minio的文件服务的存储模型及整合Java客户端访问的实战指南
767 1
【分布式技术专题】「OSS中间件系列」Minio的文件服务的存储模型及整合Java客户端访问的实战指南
|
3月前
|
存储 消息中间件 API
|
4月前
|
存储 Cloud Native 数据挖掘
MinIO作为一种开源的对象存储系统,具有以下核心特点
MinIO作为一种开源的对象存储系统,具有以下核心特点
53 0
|
8月前
|
存储 监控 Linux
MinIO分布式部署
MinIO使用纠删码( Erasure Coding)来做数据的备份和数据恢复,
532 1
|
12月前
|
人工智能 JavaScript 前端开发
MinIO:基于Go实现的高性能、兼容S3协议的对象存储
MinIO:基于Go实现的高性能、兼容S3协议的对象存储
587 0
|
存储 Web App开发 运维
部署MinIO存储服务的四种方式(二)
上一篇文章介绍了使用 Golang 语言上传本地文件到 MinIO 存储服务的实现方式。今天我们就来介绍一下如何部署 MinIO 存储服务,毕竟,我们上传文件的前提,是已经存在了对应的存储服务才行。
908 0
|
存储 算法 API
3.2.3存储服务开源 Openstack|学习笔记
快速学习3.2.3存储服务开源 Openstack
600 0
3.2.3存储服务开源 Openstack|学习笔记