分布式_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
    
    

二、实践

案例一:

上传图片到桶中

第一步

导入依赖:

       
            io.minio
            minio
            8.3.0
        


        
            me.tongfei
            progressbar
            0.5.3
        

        
            com.squareup.okhttp3
            okhttp
            4.8.1
        

第二步

编写业务代码

  • 创建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:\\czbk\\minio_java_01\\moto.jpg") // 本地磁盘的路径
                            .build()
            );
            System.out.println("上传成功");

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


    }
}

最后效果:

图示

image-20220318192400702.png

三、注意

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

  • host中的端口 使用9000(默认)而不是 静态路径(自己写的)
  • 看准账号 密码是否正确
  • uploadObject方法中 filename中参数为本地磁盘的路径 绝对路径

你可能感兴趣的:(分布式_minio_java整合minio)