分布式_minio_java整合minio

minio

一、概述

使用java语言整合minio

准备工作:

  • java(maven)

  • minio server

    root@ubuntu:/minio# docker ps -a
    CONTAINER ID   IMAGE         COMMAND                  CREATED        STATUS                   PORTS                                                                                  NAMES
    69916d0c5a05   minio/minio   "/usr/bin/docker-ent…"   2 hours ago    Up 2 hours               0.0.0.0:9000->9000/tcp, :::9000->9000/tcp, 0.0.0.0:9988->9988/tcp, :::9988->9988/tcp   minio01
    
    

二、实践

案例一:

上传图片到桶中

第一步

导入依赖:

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


        <dependency>
            <groupId>me.tongfei</groupId>
            <artifactId>progressbar</artifactId>
            <version>0.5.3</version>
        </dependency>

        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.8.1</version>
        </dependency>

第二步

编写业务代码

  • 创建MinioClient对象(host username password)
  • 校验桶是否存在
  • 存在就上传数据
  • 不存在就创建一个桶

代码:

public class MinioDemo01 {
    public static void main(String[] args) {

        try {
            MinioClient minioClient = MinioClient.builder()
                    .endpoint("http://192.168.131.130:9000/")
                    .credentials("admin","admin123")
                    .build();
            String bucketName = "miniotojava01";
            boolean found = minioClient.bucketExists(BucketExistsArgs.
                    builder().bucket(bucketName).build());
            if (!found){
                // 新建一个桶
                minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
            }

            minioClient.uploadObject(
                    UploadObjectArgs.builder()
                            .bucket(bucketName)
                            .object("moto.jpg")
                            .filename("D:czbkminio_java_01moto.jpg") // 本地磁盘的路径
                            .build()
            );
            System.out.println("上传成功");

        }catch (Exception e){
            e.printStackTrace();
        }


    }
}

最后效果:

图示

分布式_minio_java整合minio

三、注意

使用minio整合时有几点要点(踩过的坑)

  • host中的端口 使用9000(默认)而不是 静态路径(自己写的)
  • 看准账号 密码是否正确
  • uploadObject方法中 filename中参数为本地磁盘的路径 绝对路径
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
_諫_的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容