# JAVA API 操作
# 获取 MinioClient
public class MinIoTest {
public static void main(String[] args) {
MinioClient minioClient = MinioClient
.builder()
.endpoint("http://localhost:9000/")
.credentials("username","password")
.build();
}
}
# 参数解释
- endpoint:Minio的通信地址
- credentials:
- accessKey: 用户名
- secretKey: 密码
# 判断 Bucket 是否存在
public class MinIoTest {
public static void main(String[] args) {
MinioClient minioClient = MinioClient
.builder()
.endpoint("http://localhost:9000/")
.credentials("username","password")
.build();
try {
boolean minioTest = minioClient.bucketExists(BucketExistsArgs.builder().bucket("testbucket").build());
System.out.println("bucket minioTest 存在状态" + minioTest);
} catch (Exception e) {
e.printStackTrace();
}
}
}
# 创建 Bucket
public class MinIoTest {
public static void main(String[] args) {
MinioClient minioClient = MinioClient
.builder()
.endpoint("http://124.222.183.73:9000/")
.credentials("username","password")
.build();
try {
boolean minioTest = minioClient.bucketExists(BucketExistsArgs.builder().bucket("testbucket").build());
System.out.println("bucket minioTest 存在状态" + minioTest);
if (!minioTest) {
System.out.println("bucket 不存在 创建bucket");
minioClient.makeBucket(MakeBucketArgs.builder().bucket("testbucket").build());
System.out.println("新建完成");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
# 上传文件
# 路径上传
public class MinIoTest {
public static void main(String[] args) {
MinioClient minioClient = MinioClient
.builder()
.endpoint("http://124.222.183.73:9000/")
.credentials("username","password")
.build();
try {
boolean minioTest = minioClient.bucketExists(BucketExistsArgs.builder().bucket("testbucket").build());
System.out.println("bucket minioTest 存在状态" + (minioTest == true ? "存在" : "不存在"));
if (!minioTest) {
System.out.println("bucket 不存在 创建bucket");
minioClient.makeBucket(MakeBucketArgs.builder().bucket("testbucket").build());
System.out.println("新建完成");
}
ClassPathResource resource = new ClassPathResource("video/testVideo.mp4");
System.out.println("开始上传文件");
ObjectWriteResponse testbucket = minioClient.uploadObject(
UploadObjectArgs.builder()
.bucket("testbucket")
.object("testUpload.mp4")
.filename(resource.getFile().getAbsolutePath())
.build()
);
System.out.println("上传完成");
System.out.println("testbucket" + testbucket);
}
}
# 流式上传
public class MinIoTest {
public static void main(String[] args) {
MinioClient minioClient = MinioClient
.builder()
.endpoint("http://124.222.183.73:9000/")
.credentials("username","password")
.build();
try {
boolean minioTest = minioClient.bucketExists(BucketExistsArgs.builder().bucket("testbucket").build());
System.out.println("bucket minioTest 存在状态" + (minioTest == true ? "存在" : "不存在"));
if (!minioTest) {
System.out.println("bucket 不存在 创建bucket");
minioClient.makeBucket(MakeBucketArgs.builder().bucket("testbucket").build());
System.out.println("新建完成");
}
ClassPathResource resource = new ClassPathResource("video/testVideo.mp4");
ObjectWriteResponse testbucket = minioClient.putObject(
PutObjectArgs
.builder()
.bucket("testbucket")
.object("testUpload.mp4")
.stream(resource.getInputStream(), resource.contentLength(), -1)
.build()
);
System.out.println("上传完成");
System.out.println("testbucket" + testbucket);
}
}
# 读取文件
public class MinIoTest {
public static void main(String[] args) {
MinioClient minioClient = MinioClient
.builder()
.endpoint("http://124.222.183.73:9000/")
.credentials("username","password")
.build();
try {
boolean minioTest = minioClient.bucketExists(BucketExistsArgs.builder().bucket("testbucket").build());
System.out.println("bucket minioTest 存在状态" + (minioTest == true ? "存在" : "不存在"));
if (!minioTest) {
System.out.println("bucket 不存在 创建bucket");
minioClient.makeBucket(MakeBucketArgs.builder().bucket("testbucket").build());
System.out.println("新建完成");
}
ObjectWriteResponse testbucket = minioClient.putObject(
PutObjectArgs
.builder()
.bucket("testbucket")
.object("testUpload.mp4")
.stream(resource.getInputStream(), resource.contentLength(), -1)
.build()
);
System.out.println("上传完成");
System.out.println("testbucket" + testbucket);
try (
InputStream is = minioClient.getObject(
GetObjectArgs.builder()
.bucket(testbucket.bucket())
.object(testbucket.object())
.build()
);
//可以不导出,因为 minio 提供了下载的方法
OutputStream os = new FileOutputStream("C:/Users/GaoLiang/Desktop/--" + testbucket.object())
) {
byte[] flush = new byte[1024 * 1024];
int len = -1;
while ((len = is.read(flush)) != -1) {
os.write(flush, 0, len); // 将读取的数据写入输出流
}
os.flush();
System.out.println();
System.out.println("下载完成");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
# 删除文件
public class MinIoTest {
public static void main(String[] args) {
MinioClient minioClient = MinioClient
.builder()
.endpoint("http://124.222.183.73:9000/")
.credentials("username","password")
.build();
try {
boolean minioTest = minioClient.bucketExists(BucketExistsArgs.builder().bucket("testbucket").build());
System.out.println("bucket minioTest 存在状态" + (minioTest == true ? "存在" : "不存在"));
if (!minioTest) {
System.out.println("bucket 不存在 创建bucket");
minioClient.makeBucket(MakeBucketArgs.builder().bucket("testbucket").build());
System.out.println("新建完成");
}
ClassPathResource resource = new ClassPathResource("video/testVideo.mp4");
ObjectWriteResponse testbucket = minioClient.putObject(
PutObjectArgs
.builder()
.bucket("testbucket")
.object("testUpload.mp4")
.stream(resource.getInputStream(), resource.contentLength(), -1)
.build()
);
System.out.println("上传完成");
System.out.println("testbucket" + testbucket);
minioClient.removeObject(
RemoveObjectArgs.builder()
.bucket(testbucket.bucket())
.object(testbucket.object())
//可选
//.versionId(testbucket.versionId())
.build()
);
} catch (Exception e) {
e.printStackTrace();
}
}
}
# 下载文件
public class MinIoTest {
public static void main(String[] args) {
MinioClient minioClient = MinioClient
.builder()
.endpoint("http://124.222.183.73:9000/")
.credentials("username","password")
.build();
try {
boolean minioTest = minioClient.bucketExists(BucketExistsArgs.builder().bucket("testbucket").build());
System.out.println("bucket minioTest 存在状态" + (minioTest == true ? "存在" : "不存在"));
if (!minioTest) {
System.out.println("bucket 不存在 创建bucket");
minioClient.makeBucket(MakeBucketArgs.builder().bucket("testbucket").build());
System.out.println("新建完成");
}
ClassPathResource resource = new ClassPathResource("video/testVideo.mp4");
ObjectWriteResponse testbucket = minioClient.putObject(
PutObjectArgs
.builder()
.bucket("testbucket")
.object("testUpload.mp4")
.stream(resource.getInputStream(), resource.contentLength(), -1)
.build()
);
System.out.println("上传完成");
System.out.println("testbucket" + testbucket);
minioClient.downloadObject(
DownloadObjectArgs.builder()
.bucket(testbucket.bucket())
.object(testbucket.object())
.filename("C:/Users/GaoLiang/Desktop/" + testbucket.object())
.build()
);
} catch (Exception e) {
e.printStackTrace();
}
}
}
# 统计对象
public class MinIoTest {
public static void main(String[] args) throws Exception {
MinioClient minioClient = MinioClient
.builder()
.endpoint("http://124.222.183.73:9000/")
.credentials("username", "password")
.build();
Iterable<Result<Item>> objects = minioClient.listObjects(
ListObjectsArgs.builder().bucket("testbucket").build()
);
for (Result<Item> object : objects) {
Item item = object.get();
System.out.println(item.objectName());
System.out.println(item.versionId());
System.out.println(item.size());
System.out.println(item.etag());
System.out.println(item.isDir());
System.out.println(item.isDeleteMarker());
}
}
}
# 生成访问连接
public class MinIoTest {
public static void main(String[] args) throws Exception {
MinioClient minioClient = MinioClient
.builder()
.endpoint("http://124.222.183.73:9000/")
.credentials("username", "password")
.build();
boolean minioTest = minioClient.bucketExists(BucketExistsArgs.builder().bucket("testbucket").build());
System.out.println("bucket minioTest 存在状态" + (minioTest == true ? "存在" : "不存在"));
if (!minioTest) {
System.out.println("bucket 不存在 创建bucket");
minioClient.makeBucket(MakeBucketArgs.builder().bucket("testbucket").build());
System.out.println("新建完成");
}
ClassPathResource resource = new ClassPathResource("video/uTools_1687237919654.png");
ObjectWriteResponse testbucket = minioClient.putObject(
PutObjectArgs
.builder()
.bucket("testbucket")
.object("uTools_1687237919654.png")
.stream(resource.getInputStream(), resource.contentLength(), -1)
.build()
);
System.out.println("上传完成");
System.out.println("testbucket" + testbucket);
String presignedObjectUrl = minioClient.getPresignedObjectUrl(
GetPresignedObjectUrlArgs.builder()
.method(Method.GET)
.bucket(testbucket.bucket())
.object(testbucket.object())
.expiry(2, TimeUnit.HOURS)
.build()
);
//注意这里需要把拼接的参数删除,不然会携带很多其他的信息,比如用户名,
//还有把 Bucket 设置为public,不然没法访问
presignedObjectUrl = presignedObjectUrl.substring(0, presignedObjectUrl.indexOf("?"));
System.out.println(presignedObjectUrl);
}
}