1.pom依赖
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.0.2</version>
</dependency>
2.示例工具类
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);
}
}
}