MinIO Java Client SDK提供简单的API来访问任何与Amazon S3兼容的对象存储服务。
- 官方demo: https://github.com/minio/minio-java
- 官方文档:https://docs.min.io/docs/java-client-api-reference.html
新版 MinIO和旧版在 API使用上还是有一定的区别,比如:新版 MinIO采用 Builder构建者模式来构造 MinioClient对象。所以,官方demo仅供参考,尽量查看英文官方文档。
一、环境搭建
1、创建一个 maven项目,引入依赖:
<!-- minio依赖-->
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.3.3</version>
</dependency>
<!-- 官方 miniodemo需要的依赖-->
<dependency>
<groupId>me.tongfei</groupId>
<artifactId>progressbar</artifactId>
<version>0.7.4</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.2</version>
</dependency>
这里我把 官方demo 放到了我的项目中,所以必须引入 progressbar依赖。否则忽略它。
2、初始化Minio客户端
注意:
-
新版 MinIO 采用 Builder构建者模式来构造 MinioClient对象。
-
API端口和 访问控制台端口不要搞混了。
// 初始化Minio客户端 MinioClient minioClient = MinioClient.builder() .endpoint("http://xxx.xxx.xxx.xxx:9000/") .credentials("admin", "xxx") .build(); System.out.println(minioClient);
获取到 MinioClient对象,就可以进行 MinIO的 API操作使用了。
二、存储桶基本使用
1、检查存储桶是否存在。
- boolean bucketExists(BucketExistsArgs args):检查存储桶是否存在。
示例:
BucketExistsArgs btest2 = BucketExistsArgs.builder().bucket("btest2").build();
boolean existFlag = minioClient.bucketExists(btest2);
注意:
旧版参数是字符串 - 存储桶名,新版需要 build来构造 BucketExistsArgs对象。
2、创建存储桶
- public void makeBucket(MakeBucketArgs args):创建一个启用给定区域和对象锁定功能的存储桶。
示例1:存储桶不存在则创建
String bucketName = "java.minio.demo";
// 存储桶不存在则创建
if (!minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build())) {
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
System.out.printf("%s,创建成功
", bucketName);
}else{
System.out.printf("%s,已存在
", bucketName);
}
3、查询存储桶
3.1 查询所有桶的列表信息
- public List listBuckets():列出所有桶的桶信息。
示例:
List<Bucket> bucketList =