Java使用minio的基本操作
导入jar包
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>7.0.2</version>
</dependency>
public static void main(String[] args) {
try{
MinioClient minioClient = new MinioClient("http://127.0.0.1:9000", "minioadmin", "minioadmin");
boolean flag = minioClient.bucketExists("test");
System.out.println("是否存在此桶:"+flag);
//创建一个新的桶
//minioClient.makeBucket("test2");
//System.out.println("创建成功");
//列出所有桶
List<Bucket> bucketList = minioClient.listBuckets();
List<String> listA = new ArrayList<>();
for (Bucket bucket : bucketList) {
listA.add(bucket.name());
}
System.out.println("桶名称集合:"+listA);
//删除存储桶,注意,只有存储桶为空时才能删除成功。
//minioClient.removeBucket("test1");
//System.out.println("删除存储桶成功");
//列出存储桶所有对象名称
List<String> listObjectNames = new ArrayList<>();
if (flag) {
Iterable<Result<Item>> myObjects = minioClient.listObjects("test");
for (Result<Item> result : myObjects) {
Item item = result.get();
listObjectNames.add(item.objectName());
}
}
System.out.println("集合大小:"+listObjectNames.size()+"存储桶对象名称集合:"+listObjectNames);
//存储桶下载地址
/*getObjectURL()获取桶内文件的url地址,如果设置了只写权限,用户直接访问地址是查看不了的
getObgect()可以获取桶内对应文件的流对象,进行文件流传输
presignedGetObject()返回的是进行加密算法的地址,通过它可以直接访问文件*/
String url = minioClient.presignedGetObject("test","2021/08/11/65.png",3600);
String url1 = minioClient.getObjectUrl("test","2021/08/11/65.png");
System.out.println("下载地址:"+url);
System.out.println("下载地址:"+url1);
//文件流
InputStream file = minioClient.getObject("test","2021/08/11/65.png");
System.out.println("文件流:"+file);
//设置有效期的分享链接(共享文件时间最大7天)
//minioClient.getPresignedObjectUrl(Method.GET,"asiatrip","minio.png",10,null)有效期10秒,可以通过get方式访问
//存储桶文件详情
Iterable<Result<Item>> it = minioClient.listObjects("test");
Iterator<Result<Item>> iter = it.iterator();
int i = 0;
while(iter.hasNext()) {
i = i + 1;
Result<Item> result = iter.next();
Item item = result.get();
System.out.println("存储文件详情=================文件详情:"+i);
System.out.println("etag:" + item.etag());
System.out.println("objectName:" + item.objectName());
System.out.println("isDir:" + item.isDir());
System.out.println("lastModified:" + item.lastModified());
System.out.println("owner:" + item.owner().displayName());
System.out.println("size:" + item.size());
System.out.println("userMetadata:" + item.userMetadata());
System.out.println("storageClass:" + item.storageClass());
System.out.println("item to String:" + item.toString());
}
//minio上传文件 minio文件夹 fileName--uuid编码之后的文件名+路径 年/月/日/uuid.文件后缀 文件流
//minioClient.putObject("test", "2021/08/11/66.png","C:\\Users\\Admin\\Desktop\\66.png" ,null);
//System.out.println("上传成功");
//minio删除文件 -如果此文件夹只有一个文件 删除该文件时会同步删除文件夹
//minioClient.removeObject("test", "2021/8/11/66.png");
//System.out.println("删除成功");
}catch (Exception e){
e.getMessage();
}
}