MinIO安装与使用

介绍

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

发展历史

MinIO的创始者是Anand Babu Periasamy, Harshavardhana等人。Anand是GlusterFS的初始开发者、Gluster公司的创始人与CTO,Harshavardhana曾经是GlusterFS的开发人员,直到2011年红帽收购了Gluster公司。

使用场景

MinIO作为一个开源的分布式对象存储系统,具有广泛的使用场景。无论是数据备份和恢复、大规模数据存储和分析、静态网站托管、私有云存储还是数据归档和长期存储,MinIO都能提供高可靠性、可扩展性和安全性的存储解决方案。

安装和配置 MinIO 服务器

MinIO 服务器可以在多种平台上运行,包括 Linux、macOS、Windows 和 Docker。接下来,我们将演示如何在Windows安装和配置 MinIO 服务器。

1.安装安装 MinIO 服务器

在 64 位 Windows 主机上运行 MinIO 服务器,可以从以下 URL 下载 MinIO 可执行文件:

https://dl.min.io/server/minio/release/windows-amd64/minio.exe

2.启动

使用以下命令来运行 MinIO 服务器,并替换 D:\ 为你想要 MinIO 存储数据的驱动器或目录的路径。你必须将终端或 PowerShell 的目录更改为 minio.exe 可执行文件所在的位置,或者将该目录的路径添加到系统 $PATH 中:

minio.exe server D:\

该过程将其输出输出到系统控制台,类似于以下内容:

Formatting 1st pool, 1 set(s), 1 drives per set.
WARNING: Host local has more than 0 drives of set. A host failure will result in data becoming unavailable.
WARNING: Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environment variables
MinIO Object Storage Server
Copyright: 2015-2023 MinIO, Inc.
License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Version: RELEASE.2023-11-20T22-40-07Z (go1.21.4 windows/amd64)

Status:         1 Online, 0 Offline.
S3-API: http://192.168.0.105:9000  http://127.0.0.1:9000
RootUser: minioadmin
RootPass: minioadmin

Console: http://192.168.0.105:51510 http://127.0.0.1:51510
RootUser: minioadmin
RootPass: minioadmin

Command-line: https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart
   $ mc alias set 'myminio' 'http://192.168.0.105:9000' 'minioadmin' 'minioadmin'

Documentation: https://min.io/docs/minio/linux/index.html
Warning: The standard parity is set to 0. This can lead to data loss.


MinIO 服务器启动后,会使用默认的根凭证 minioadmin:minioadmin。可以使用 MinIO 控制台,一个内嵌在 MinIO 服务器中的基于 Web 的对象浏览器,来测试你的部署。在主机上运行的 Web 浏览器中,访问 http://127.0.0.1:9000 并使用根凭证登录。可以使用浏览器来创建存储桶、上传对象和浏览 MinIO 服务器的内容。

在这里插入图片描述
你可以使用 MinIO 控制台执行常规管理任务,例如身份和访问管理、指标和日志监控或服务器配置。 每个 MinIO 服务器都包含自己的嵌入式 MinIO 控制台。
在这里插入图片描述
注意:单机模式的 MinIO 服务器最适合早期的开发和评估。某些功能,如版本控制、对象锁定和存储桶复制,需要使用纠删码模式的分布式 MinIO 部署。对于扩展的开发和生产,建议使用纠删码模式的 MinIO 部署,具体来说,每个 MinIO 服务器至少需要 4 个驱动器。请参考 https://docs.min.io/docs/minio-erasure-code-quickstart-guide.html 获取更完整的文档。

如何集成

MinIO可以轻松地与各种应用程序和服务进行集成。例如,可以在SpringBoot中整合MinIO,也可以在前端直接使用MinIO。此外,MinIO还提供了Java SDK,下面是一个简单的演示

<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.2.1</version>
</dependency>

然后,我们可以创建一个 MinIO 客户端的实例,并使用它来执行各种操作。例如,我们可以使用 putObject 方法来上传一个文件,或者使用 getObject 方法来下载一个文件。

import io.minio.*;
import java.io.*;

public class MinioExample {
    public static void main(String[] args) throws Exception {
        // 创建一个 MinIO 客户端
        MinioClient minioClient = MinioClient.builder()
            .endpoint("http://127.0.0.1:9000")
            .credentials("minioadmin", "minioadmin")
            .build();

        // 上传一个文件
        minioClient.uploadObject(
            UploadObjectArgs.builder()
                .bucket("mybucket")
                .object("myobject")
                .filename("my-filepath")
                .build());

        // 下载一个文件
        try (InputStream stream = minioClient.getObject(
            GetObjectArgs.builder()
                .bucket("mybucket")
                .object("myobject")
                .build())) {

            // 读取下载的文件的内容
            byte[] buf = new byte[16384];
            int bytesRead;
            while ((bytesRead = stream.read(buf, 0, buf.length)) >= 0) {
                System.out.println(new String(buf, 0, bytesRead));
            }
        }
    }
}

结语

总的来说,MinIO是一个强大的对象存储服务,它提供了丰富的功能和灵活的集成选项,使得它能够满足各种不同的使用场景。然而,与任何技术一样,使用MinIO时也需要考虑其可能的限制和挑战。因此,在选择使用MinIO之前,建议详细了解其特性和限制,以确保它能够满足实际需求。如果想要了解更多关于MinIO的信息,可以访问它的官方网站

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值