1.pom依赖

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

2.示例工具类

上传文件夹到minio_java

package com.thinkive.ave.work.handler;

import io.minio.MinioClient;
import io.minio.ObjectWriteResponse;
import io.minio.PutObjectArgs;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;

/**
 * @description: 上传文件夹到minio
 */
public class WjjUpload {
    private static final String ENDPOINT = "http://192.168.90.231:19000";//minio地址+端口
    // minio 账号
    private static final String ACCESS_KEY = "xx";
    // minio 密码
    private static final String SECRET_KEY = "xx@xx";
    // minio的桶名称
    private static final String BUCKET_NAME = "xx";
    // 桶内路径不含桶
    private static final String ROOT_PATH = "/xx/xx/xx/x";
    // 下载到的地址
    private static final String LOCAL_DIR = "D:\\tmp\\minio_bak";

    // 初始化MinIO客户端
    static MinioClient minioClient = MinioClient.builder().endpoint(ENDPOINT).credentials(ACCESS_KEY, SECRET_KEY).build();


    /**
     * 创建文件夹或目录
     *
     * @param bucketname 存储桶
     * @param objectName 目录路径
     */
    public static ObjectWriteResponse putDirObject(String bucketname, String objectName) {
        try {
            ObjectWriteResponse objectWriteResponse = minioClient.putObject(
                    PutObjectArgs.builder().bucket(bucketname).object(objectName).stream(
                                    new ByteArrayInputStream(new byte[]{}), 0, -1)
                            .build());
            return objectWriteResponse;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public static void main(String[] args) {
        try {
            // 本地文件夹路径
            File folder = new File("D:\\tmp\\minio_bak\\plat\\tmplres\\scenetmpl\\thinkive\\wjj_upload_test");
            // 遍历文件夹中的文件,逐个上传
            for (File file : folder.listFiles()) {
                if (file.isDirectory()) {
                    for (File file1 : file.listFiles()) {
                        // 获取当前文件夹的名称
                        String curFolder = file1.getAbsoluteFile().getParentFile().getName();
                        // 创建目录
//                        putDirObject(BUCKET_NAME, "/plat/tmplres/scenetmpl/thinkive/after_review/test1/" + curFolder);
                        minioClient.putObject(PutObjectArgs.builder()
                                .bucket(BUCKET_NAME)
                                .object("/plat/tmplres/scenetmpl/thinkive/after_review/test2/" + curFolder + "/" + file1.getName())
                                .stream(new FileInputStream(file1), new Long(file1.length()), -1)
                                .build());
                        System.out.println("文件夹:Successfully uploaded " + file.getName());
                    }
                    continue;
                }
                // 使用putObject方法上传文件
                FileInputStream stream = new FileInputStream(file);
                minioClient.putObject(PutObjectArgs.builder()
                        .bucket(BUCKET_NAME)
                        .object("plat/tmplres/scenetmpl/thinkive/after_review/test2/" + file.getName())
                        .stream(stream, new Long(file.length()), -1)
                        .build());
                System.out.println("Successfully uploaded " + file.getName());
            }
        } catch (Exception e) {
            System.out.println("Error occurred: " + e);
        }
    }
}