对象存储Minio使用教程

时间:2025-02-16 12:09:33
package work.vcloud.exam.controller.test.minio; import io.minio.MinioClient; import io.minio.PutObjectOptions; import io.minio.Result; import io.minio.messages.Bucket; import io.minio.messages.Item; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.util.List; public class MinioDemo { public static void main(String[] args) { try { String accessKey = "Minio"; String secretKey = "Test123456"; //String endpoint = "http://192.168.1.115:9000"; String endpoint = "http://centos115:9000"; String bucketName = "resource"; // 使用MinIO服务的URL,端口,Access key和Secret key创建一个MinioClient对象 MinioClient minioClient = new MinioClient(endpoint, accessKey, secretKey); // 检查存储桶是否已经存在 String test_bucketName = "asiatrip"; boolean isExist = minioClient.bucketExists(test_bucketName); System.out.println(isExist); if (!isExist) { minioClient.makeBucket(test_bucketName); } // 移除存储桶 minioClient.removeBucket(test_bucketName); // 遍历所有桶 List<Bucket> buckets = minioClient.listBuckets(); if (buckets != null && !buckets.isEmpty()) { buckets.forEach(bucket -> { System.out.println(bucket.name()); }); } String objectName = "Downloads/movie.mp4"; // 使用putObject上传一个文件到存储桶中。 File file = new File("C:\\Users\\jiuhui-4\\Downloads\\movie.mp4"); InputStream is = new FileInputStream(file); // 使用putObject上传一个本地文件到存储桶中。 minioClient.putObject(bucketName, objectName, is, new PutObjectOptions(is.available(), -1)); is.close(); // 获取对象url String file_url = minioClient.getObjectUrl(bucketName, "movie.mp4"); System.out.println(file_url); // 删除对象 minioClient.removeObject(bucketName, "movie.mp4"); //if (1 == 1) return; // 列出'my-bucketname'里的对象 Iterable<Result<Item>> myObjects = minioClient.listObjects(bucketName); for (Result<Item> result : myObjects) { Item item = result.get(); System.out.println(item.lastModified() + ", " + item.size() + ", " + item.objectName()); } // 分享连接 String url = minioClient.presignedGetObject(bucketName, objectName, 60 * 60 * 24); System.out.println(url); } catch (Exception e) { e.printStackTrace(); } } }