Java使用minio的基本操作

这篇博客介绍了如何使用Java与MinIO进行交互,包括导入MinIO库、检查桶是否存在、创建桶、列出所有桶、获取桶中对象、下载文件、文件流操作、设置文件分享链接以及上传和删除文件等基本操作。示例代码详细展示了每个功能的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

    }

minio-7.0.2下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值