对象存储Minio使用教程
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();
}
}
}