一、maven依赖
<dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>7.0.2</version> <!-- 8.4.2--> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> </dependency>
二、代码
package org.example; import io.minio.MinioClient; import io.minio.PutObjectOptions; import io.minio.Result; import io.minio.messages.Bucket; import io.minio.messages.Item; import org.junit.Before; import org.junit.Test; import java.io.File; import java.util.List; public class TestMinio { private static MinioClient minioClient; private static String bucketName = "asiatrip"; private static String filePath = "C:\\Users\\Administrator\\Desktop\\1.zip"; private static String endPoint = "http://192.168.1.100:9000"; private static String accessKey = "accessKey"; private static String secretKey = "secretKey"; //上传文件大小限制5M private static long limitSize = 5242880L; @Before public void init() throws Exception { minioClient = new MinioClient(endPoint, accessKey, secretKey); System.out.println("开始连接minio"); } @Test public void testCreateBucket() throws Exception { boolean isExist = minioClient.bucketExists(bucketName); if (isExist) { System.out.println(bucketName + "已经存在!"); } else { minioClient.makeBucket(bucketName); System.out.println("创建了一个名字是" + bucketName + "的bucket"); } } @Test public void testListBuckets() throws Exception { List<Bucket> bucketList = minioClient.listBuckets(); bucketList.forEach(p -> { System.out.println(p.name()); }); } @Test public void testUploadFile() throws Exception { File file = new File(filePath); //自行查看PutObjectOptions源码 PutObjectOptions options = new PutObjectOptions(file.length(), limitSize); minioClient.putObject(bucketName, file.getName() + (String.valueOf(System.currentTimeMillis())), filePath, options); System.out.println("上传完毕,请刷新minio的web页面,查看上传文件"); } @Test public void testListObjects() throws Exception { Iterable<Result<Item>> iterable = minioClient.listObjects(bucketName); for (Result<Item> o : iterable) { System.out.println("当前objectname---->>>>>>>" + o.get().objectName()); } } @Test public void testRemoveBucket() throws Exception { boolean isExist = minioClient.bucketExists(bucketName); if (isExist) { //桶不空,删不掉,所以清桶的objects Iterable<Result<Item>> iterable = minioClient.listObjects(bucketName); for (Result<Item> o : iterable) { System.out.println("当前objectname---->>>>>>>" + o.get().objectName()); minioClient.removeObject(bucketName, o.get().objectName()); System.out.println("开始清理---->>>>>>>" + o.get().objectName()); } System.out.println("清理" + bucketName + "下的object完毕"); minioClient.removeBucket(bucketName); if (!minioClient.bucketExists(bucketName)) { System.out.println("删除" + bucketName + "完毕,刷新minio的web页面"); } } else { System.out.println("没有这个bucket,无需操作"); } } }
三、官网完整示例
http://docs.minio.org.cn/docs/master/java-client-quickstart-guide
还要仔细研究下,目前依赖mc.exe也就是minio的client来控制bucket的policy