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();}}