MinIo 的操作与使用

文章目录

      • [一、Client 连通](#一、Client 连通)
        • [1. SpringBoot 项目](#1. SpringBoot 项目)
        • [2. 自己公司的 Maven 项目(非 SpringBoot 项目)](#2. 自己公司的 Maven 项目(非 SpringBoot 项目))

官方 API 文档:Documentation

官方中文文档:MinIO中文文档

一、Client 连通

  Java 代码:

java 复制代码
        MinioClient minioClient =
                MinioClient.builder()
                        .endpoint("http://192.168.110.110:9000")
                        .credentials("xiaoqiang", "heheda123")
                        .build();
        System.out.println(minioClient);
        // 检查桶是否存在
        boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket("test").build());
        if (!found) {
            // 创建桶
            minioClient.makeBucket(MakeBucketArgs.builder().bucket("test").build());
        }

        //列出所有桶名
        List<Bucket> buckets = minioClient.listBuckets();
        for (Bucket i : buckets){
            System.out.println(i.name());
        }

  Maven 引入:

xml 复制代码
        <!--此依赖为minio的服务依赖-->
        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>8.5.7</version>
        </dependency>

  报错:

xml 复制代码
        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>8.5.2</version>
        </dependency>
        <!--或者-->
        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>8.4.5</version>
        </dependency>
        <!--或者-->
        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>8.3.7</version>
        </dependency>

  报错:

xml 复制代码
        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>8.2.1</version>
        </dependency>
        <!--或者-->
        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>8.1.0</version>
        </dependency>
        <!--或者-->
        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>8.0.3</version>
        </dependency>

  报错:Exception in thread "main" java.lang.NoSuchMethodError: kotlin.collections.ArraysKt.copyInto([B[BIII)[B

  尝试解决1:

  结论:不好使。

  尝试解决2:新建一个纯 Maven 项目。好使


  接下来的解决思路:将项目中的依赖依次注释最终只留 Minio 的依赖,看到底是哪个引入的依赖和 Minio 的依赖有冲突。

1. SpringBoot 项目

  最终发现是 spring-boot-starter-parent 的依赖导致的。


  居然是 SpringBoot 的顶层依赖导致的,也是绝了。尝试了下低版本居然可以。

  更高的版本居然也可以。

  经测试,框起来的版本可以用。

2. 自己公司的 Maven 项目(非 SpringBoot 项目)

  经排查,居然是 phoenix 的引入导致的。报错:Exception in thread "main" java.lang.NoSuchFieldError: Companion

  而且通过 exclusion 排除该 jar 包的方式并不好使,可能得重新编译该 jar 包。

相关推荐
分布式存储与RustFS17 小时前
RustFS 原生支持 S3 Tables:对象存储怎么变成 AI 原生存储
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
分布式存储与RustFS17 小时前
用 rclone 把现有 S3/MinIO 数据同步到 RustFS
对象存储·s3·rustfs
成为你的宁宁2 天前
【MinIO 分布式集群运维实战:客户端MC、故障恢复、扩容、备份还原与Prometheus监控】
minio
分布式存储与RustFS3 天前
在自己的机器上复现 RustFS 性能基准:warp 压测实操
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
分布式存储与RustFS4 天前
把 12TB 生产数据从 MinIO 迁到 RustFS:一次真实迁移的实测
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
分布式存储与RustFS5 天前
给 RustFS 加第二个池:volumes 省略号语法与多池扩容路线
对象存储·s3·rustfs
分布式存储与RustFS6 天前
RustFS 监控实战:OpenTelemetry Collector 把指标接入 Prometheus + Grafana
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
分布式存储与RustFS8 天前
从 MinIO 到 RustFS:不只是换语言,更是换一份协议自由
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
分布式存储与RustFS9 天前
给 Kubernetes 找一个对象存储后端:RustFS Helm 部署 + 应用接入实录
云原生·kubernetes·开源·对象存储·分布式存储·s3·rustfs
时空无限17 天前
minio 设置策略
minio