minio安装部署及使用

一.简述

MinIO是一个高性能、分布式的对象存储系统,专为云原生和容器化环境而设计。它使用分布式架构来存储和管理大规模的非结构化数据,如图片、视频、日志文件等。MinIO基于Amazon S3协议,并提供了与S3兼容的API,这使得它能够与现有的S3生态系统无缝集成。

MinIO的优点包括高可用性、高性能、数据安全以及灵活性。通过数据分布和冗余,MinIO可以提高系统的可用性,即使部分节点发生故障也不会影响系统的正常运行。同时,MinIO支持水平扩展,可以并行读写操作,提高数据的访问速度。此外,它还支持数据加密和访问控制,确保数据的安全性和完整性。MinIO的灵活性体现在它可以根据应用需求进行扩展和缩减,同时支持多种存储后端,可以与其他存储系统集成使用。

然而,MinIO也存在一些缺点。首先,其分布式部署需要进行一定的配置和管理,可能较为复杂。其次,学习成本较高,需要对分布式系统和存储技术有一定的了解才能有效地使用MinIO。最后,分布式存储系统通常需要较多的硬件资源和网络带宽,可能会增加系统的运维成本。

MinIO的应用场景非常广泛,包括AI/ML、分析、备份/恢复以及现代Web和移动应用程序。在前端使用场景下,MinIO的优点在于可以通过API直接上传文件至服务器,但对于某些纯浏览器模块加载器构建的项目可能不适用,且前端直传时缺乏对上传进度的直观反馈,用户体验可能欠佳。

总的来说,MinIO是一个功能强大、灵活且易于扩展的对象存储系统,适用于各种云原生和容器化环境。然而,在使用前需要充分考虑其配置复杂性、学习成本以及运维成本等因素。

二.安装

官网 : MinIO对象存储 Container — MinIO中文文档 | MinIO Container中文文档

1.window安装

  1. 在官网下载好后,得到  minio.exe
  2. 创建一个存储非结构化数据的文件夹,如data
  3. 启动minio  :   在minio.exe所在目录下,打开cmd窗口 输入: minio.exe   server    存放文件的绝对路径
    minio.exe server D:\Software\minIO\data

进入minio的图形化管理界面

1.

或者 (单机):localhost:9000

用户名:minioadmin

密码:minioadmin

2.linux安装(docker容器)

//拉取镜像
docker pull quay.io/minio/minio

// 创建数据存储目录
mkdir -p ~/minio/data

// 创建minio
docker run \
   -p 9001:9000 \
   -p 9090:9090 \
   --name minio \
   -v ~/minio/data:/data \
   -e "MINIO_ROOT_USER=admin" \
   -e "MINIO_ROOT_PASSWORD=admin123456" \
   -d \
   quay.io/minio/minio server /data --console-address ":9090"

三.简单使用

先创建buckets

把访问策略改为公共的

四.springboot整合minio

参考官网

1.导入依赖

<!-- common-util模块中加入如下依赖 -->
<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.5.2</version>
</dependency>

2.示例代码

public class FileUploadTest {

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

        boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket("spzx-bucket").build());

        // 如果不存在,那么此时就创建一个新的桶
        if (!found) {
            minioClient.makeBucket(MakeBucketArgs.builder().bucket("spzx-bucket").build());
        } else {  // 如果存在打印信息
            System.out.println("Bucket 'spzx-bucket' already exists.");
        }

        FileInputStream fis = new FileInputStream("D://01.jpg") ;
        PutObjectArgs putObjectArgs = PutObjectArgs.builder()
                .bucket("spzx-bucket")
                .stream(fis, fis.available(), -1)
                .object("01.jpg")
                .build();
        minioClient.putObject(putObjectArgs) ;

        // 构建fileUrl
        String fileUrl = "http://127.0.0.1:9000/spzx-bucket/01.jpg" ;
        System.out.println(fileUrl);
    }
}

  • 14
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值