【从零开始学习Minio | 第一篇】快速介绍什么是Minio

news2024/11/28 11:00:59

前言:

在当今数字化时代,数据的存储和管理已经成为了企业发展中的关键一环。随着数据量的不断增长和数据安全性的日益受到重视,传统的数据存储解决方案往往面临着诸多挑战。为了应对这些挑战,云存储技术应运而生,并在各个领域展现出了巨大的潜力和优势。

在云存储技术中,MinIO作为一个开源的对象存储服务器,正逐渐成为了行业内的热门选择。其高度可扩展、高性能、安全可靠的特性,使其在云原生应用、大数据分析、备份和归档等场景中受到了广泛关注和应用。

目录

前言:

什么是Minio:

Minio的基础概念:

Minio在windows中的下载:

Minio的优点:

总结:


 

在之前的项目中,我们搭建了一个web版本的云盘网站,但是这个项目在存储用户文件的时候,我们只是简单的利用IO把文件保存在的本地。

【Easy云盘】_我是一盘牛肉的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/fckbb/category_12611250.html?spm=1001.2014.3001.5482而在这里我们提出了一种新的优化方案:那就是基于Minio进行存储

而我们之所以不选择直接把用户文件存储在OSS这种云对象存储服务平台上,主要还是因为费用太高,而且后期不易转移。

如果在后期我们想要搭建自己的存储服务器进行存储文件,想要把所有文件数据从OSS这类平台上拉下来的时候。按照OSS的计费标准1TB大概是500元左右,而这对于云盘来讲确实是一个比较高的费用了。

所以对于中小型企业来讲,如果不选择存储上云,那么Minio是一个不错的选择,Minio除了直接作为对象存储使用,还可以作为云上对象存储服务的网关层,无缝对接到Amazon S3,MicroSoft Azure。

在中国,有很多互联网大厂都在使用Minio产品,例如阿里巴巴,百度,华为等。

什么是Minio:

MinIO 是一个开源的对象存储服务器,旨在提供高性能、可扩展、持久性的存储解决方案。它允许用户通过简单的 HTTP/REST API 来存储和检索任意类型的数据,例如图片、视频、文档等。

MinIO 设计用于大规模的数据存储和分析任务,具有以下特点:

  1. 高性能 MinIO 利用现代硬件和网络技术,提供了高速的数据传输和处理能力。其并行计算和多线程技术可以最大程度地利用系统资源,实现快速的数据存储和访问。

  2. 可扩展性 MinIO 是一个分布式存储系统,可以轻松地扩展存储容量和性能。用户可以通过添加新的存储节点来实现横向扩展,满足不断增长的数据存储需求。

  3. 持久性 MinIO 支持数据的多副本复制和分布式存储,确保数据的高可用性和持久性。即使某个节点发生故障,系统仍然可以继续提供服务,保证数据安全和可靠性。

  4. 云原生支持 MinIO 可以轻松地集成到云原生架构中,支持容器化部署和微服务架构。它与 Kubernetes、Docker 等平台完美配合,适合在云环境中构建高可用、可扩展的存储基础设施。

  5. 开源和灵活性 MinIO 是一个开源项目,拥有活跃的社区支持和持续的更新迭代。它提供了丰富的 API 和插件机制,可以轻松地与其他系统集成,满足不同场景下的需求。

总的来说,MinIO 提供了一个高性能、可扩展、持久性的对象存储解决方案,适用于各种大规模数据存储和分析任务,成为许多企业和开发者的首选存储平台。

Minio的基础概念:

在 MinIO 中,有一些重要的概念需要理解,包括对象(Object)桶(Bucket)驱动器(Drive)集合(Set)。以下是对这些概念的介绍:

  1. 对象(Object) 在 MinIO 中,对象是存储在对象存储系统中的基本数据单元。每个对象都由数据、元数据和唯一的标识符组成。对象可以是任何类型的数据,例如文件、图片、视频等。对象存储使用键(Key)来唯一标识和检索对象,而不是使用传统的文件路径。对象存储提供了高度可扩展性和持久性,适用于大规模的数据存储和分析任务。

  2. 桶(Bucket) 桶是 MinIO 中用于组织和管理对象的容器。每个桶都有一个唯一的名称,在同一个 MinIO 实例中,桶名称必须是唯一的。用户可以通过桶来对对象进行逻辑分组,例如按照项目、部门或者应用程序来创建不同的桶。桶可以设置访问权限控制,以控制谁可以访问其中的对象以及执行何种操作。

  3. 驱动器(Drive) 驱动器是 MinIO 中用于存储数据的物理设备或者存储后端。MinIO 可以将一个或多个驱动器组合成一个存储池(Storage Pool),用于存储对象数据。驱动器可以是本地硬盘、网络存储设备、云存储服务等。通过添加新的驱动器,用户可以扩展 MinIO 的存储容量和性能。

  4. 集合(Set) 集合是 MinIO 中用于管理存储策略和数据复制的概念。集合定义了一组具有相同特性或者策略的桶,例如数据的复制级别、存储类别等。用户可以通过创建集合来对一组桶进行统一的管理和配置,简化数据管理和维护操作。

综上所述,对象、桶、驱动器和集合是 MinIO 中的重要概念,理解它们可以帮助用户更好地使用和管理 MinIO 存储系统,实现高效的数据存储和管理。

Minio在windows中的下载:

首先我们要先进入minio的中文官方网站:

MinIO | 用于AI的S3 & Kubernetes原生对象存储icon-default.png?t=N7T8https://minio.org.cn/

在这里我们可以点击下载进入下载界面:

我的电脑是windows的,所以我们在这里就展示一下Windows环境下的安装和使用。

在搜索栏输入这段url,就会进行下载,等待下载完全之后,我们就会得到这样一个文件:

 

这就证明我们的minio服务已经安装成功,现在我们如果想要在电脑上启动这个服务,首先要创建一个文件夹用来存放minio的存储的各种数据,这里我们选择在同级目录下创建了一个名字叫做data的文件夹:

 

之后我们在当前窗口打开cmd窗口,输入:

minio.exe server D:\all bianyiqi\minio\data

 就可以启动该服务:

 根据指引访问地址就可以了,我们就会进入这个界面:

账号和密码都是  minioadmin 。这样我们就可以进入使用界面:

在这里我们就可以创建桶用来进行文件存储了。后续我们会讲解Spring boot集成Minio实现文件的下载等功能。

Minio的优点:

  1. 高性能 MinIO 使用了一系列优化技术,包括并行处理、分布式架构和异步 IO 等,以提供高性能的数据存储和检索。它能够在大规模数据处理和分析任务中实现低延迟和高吞吐量,满足各种性能要求。

  2. 高可用性 MinIO 支持分布式部署和数据复制,能够实现数据的冗余存储和自动故障转移。即使在单个节点或者驱动器故障的情况下,系统仍然能够保持可用性,并且对用户来说是透明的,不会影响数据的访问和操作。

  3. 弹性扩展 MinIO 的架构设计允许用户根据需要轻松地扩展存储容量和性能。用户可以添加新的节点和驱动器来扩展集群,实现无缝的水平扩展,以满足不断增长的数据需求。

  4. 灵活性 MinIO 提供了丰富的 API 和客户端工具,支持各种编程语言和应用场景。用户可以通过标准的 S3 API 访问和管理 MinIO 存储,也可以使用其他协议和工具进行集成和开发。

  5. 安全性 MinIO 支持多种安全功能,包括访问权限控制、数据加密、身份验证和认证等。用户可以根据需要对桶和对象设置访问权限,以保护数据的安全性和隐私性。

  6. 低成本 MinIO 是一个开源软件,用户可以免费获取并自由使用。它还可以运行在廉价的硬件设备上,并且具有低延迟和高效率的特点,有助于降低存储成本和运营成本。

总结:

        MinIO 提供了一种高效、可靠且灵活的解决方案,用于构建现代化的文件存储和管理系统。通过 MinIO,用户可以轻松地搭建分布式对象存储系统,实现高性能的文件存储和检索,并且可以根据需求动态扩展存储容量和性能。同时,MinIO 提供了丰富的 API 和客户端工具,支持多种编程语言和开发框架,使开发者能够更灵活地集成存储功能到他们的应用程序中。此外,MinIO 还注重安全性,提供了多种安全功能,包括数据加密、访问控制和身份验证,以保护存储在系统中的文件安全。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1650220.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【漏洞复现】CData API Server 路径遍历漏洞(CVE-2024-31849)

0x01 产品简介 CData API Server是CData公司的一个强大的数据连接平台,旨在帮助企业轻松地访问、整合和分析各种数据源。 0x02 漏洞概述 CData API Server 23.4.8846之前版本存在安全漏洞,该漏洞源于存在路径遍历漏洞。攻击者可利用该漏洞获得对应用程…

如何用TONGYILingma进行AI辅助编程?

通义灵码,是阿里云出品的一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云的云服务使用场景调优&#xff0c…

[Maven]IDEA报错-xxx is referencing itself

在IDEA中,执行 mvn clean时报错xxx is referencing itself。 解决方案:https://stackoverflow.com/questions/64246267/maven-error-using-intellij-is-referencing-itself 具体做法:采用上图第二条,将父模块pom文件中的对子模块…

《十八》QThread多线程组件

本章将重点介绍如何运用QThread组件实现多线程功能。 多线程技术在程序开发中尤为常用,Qt框架中提供了QThread库来实现多线程功能。当你需要使用QThread时,需包含QThread模块,以下是QThread类的一些主要成员函数和槽函数。 成员函数/槽函数 …

Skywalking数据持久化与自定义链路追踪

学习本篇文章之前首先要了解一下Sky walking的基础知识 分布式链路追踪工具Skywalking详解 一,Sky walking数据持久化 Sky walking提供了es,MySQL等数据持久化方案,默认使用h2基于内存的数据库,重启之后数据即会丢失。 在实际工…

streamlit通过子目录访问

运行命令: streamlit hello 系统默认使用8501端口启动服务: 如果想通过子目录访问服务,可以这么启动服务 streamlit hello --server.baseUrlPath "app" 也可以通过以下命令换端口 streamlit hello --server.port 9999 参考&…

【每日刷题】Day33

【每日刷题】Day33 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 20. 有效的括号 - 力扣(LeetCode) 2. 445. 两数相加 II - 力扣(…

error code [1449]; The user specified as a definer (‘root‘@‘%‘) does not exist

其实就是说我的root用户权限不够,那就要加上权限,网上其他地方也有好多处理办法,但是要注意数据库版本。我用的是MySQL8.0.32版本,我是这样处理的,简单可行: GRANT ALL ON *.* TO root% ;FLUSH PRIVILEGES…

关系型数据库MySQL开发要点之多表设计案例详解代码实现

什么是多表设计 项目开发中 在进行数据库表结构设计时 根据数据模型和业务关系 会根据业务需求和业务模块之间的关系分析设计表结构 由于业务之间互相关联 所以表结构之间也存在着各种联系 主要分为以下三种 一对多 每个部门下是有多个员工的 但是一个员工只能归属一个部…

Penpad再获 Presto Labs 投资,Scroll 生态持续扩张

​Penpad 是 Scroll 生态的 LaunchPad 平台,其整计划像收益聚合器以及 RWA 等功能于一体的综合性 Web3 平台拓展,该平台在近期频获资本市场关注,并获得了多个知名投资者/投资机构的支持。 截止到本文发布前,Penpad 已经获得了包括…

Excel数据分析之动态图表

在日常办公中,可以用透视表和切片器的组合方式,制作动态图,以直观的方式展示年度、季度,和不同区域的销售额。 通过结合使用这两个工具,您可以创建动态图表,可根据您的选择实时更新。这对于快速了解数据并…

【busybox记录】【shell指令】comm

目录 内容来源: 【GUN】【comm】指令介绍 【busybox】【comm】指令介绍 【linux】【comm】指令介绍 使用示例: 逐行比较两个排序后的文件 - 默认输出 逐行比较两个排序后的文件 - 如果一个文件的排序有问题,那么反错(默认&…

IDEA中向Data Sources导入sql文件

IDEA中向Data Sources导入sql文件 开篇 在学习黑马的课程时,时常需要向数据库中导入sql文件生成数据库表,每次都会忘记导入步骤,折腾许久,于是将过程记录下来。 步骤 在Database中选择你要导入的数据库源,如图我想…

QT--1

类型界面 #include "mywidget.h"myWidget::myWidget(QWidget *parent): QWidget(parent) {//窗口相关设置this->resize(680,520);this->setFixedSize(680,520);this->setWindowTitle("Tim");this->setWindowFlag(Qt::FramelessWindowHint);th…

【牛客】【模板】差分

原题链接:登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 差分模板。 b[0]a[0]; b[1]a[1]-a[0]; b[2]a[2]-a[1]; ...... b[n-1]a[n-1]-a[n-2]; b[n]a[n]-a[n-1]; 差分标记:b[l]k,b…

数组折半法查找数据(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> //定义数据&#xff1b; #define N 15int main() {//初始化变量值&#xff1b;int a[N], i, top, bott, loca, flag 1, sign, numb…

Redis学习5——Redis应用之签到

Redis位图bitMap 位图由一系列二进制位组成&#xff0c;每个位可以被设置为1或0&#xff0c;当我们在处理需要高效存储和操作大量二进制位数据的适合&#xff0c;位图是一个非常有用的工具。 位图操作命令有&#xff1a; SETBIT&#xff1a;设置位图中指定位置的位的值。可以…

类加载器aa

一&#xff0c;关系图及各自管辖范围 &#xff08;不赘述&#xff09; 二&#xff0c;查看关系 package com.jiazai;public class Main {public static void main(String[] args) {ClassLoader appClassLoader ClassLoader.getSystemClassLoader();//默认System.out.println…

Debian是什么?有哪些常用命令

目录 一、Debian是什么&#xff1f; 二、Debian常用命令 三、Debian和CentOS的区别 四、Debian和CentOS的优缺点 五、Debian和CentOS的运用场景 一、Debian是什么&#xff1f; Debian是一种流行的开源Linux操作系统。 Debian是一个以Linux内核为基础的操…

1天搞定SpringBoot+Vue全栈开发 (7)Axios网络请求

1.Axios的使用 Axios中文文档 | Axios中文网Axios 是一个基于 promise 的网络请求库&#xff0c;可以用于浏览器和 node.jshttps://www.axios-http.cn/ 2.与vue整合 App.vue: <template><div id"app"><Moviev-for"movie in movies":key&qu…