Minio8.2.3在Springboot 语法常用

MinIO Java客户端

minio使用的8X版本

创建存储对象

        // 创建 MinioUploader 对象并连接到 Minio 对象存储
       MinioClient minioClient = MinioClient.builder()
                    .endpoint(Endpoint)
                    .credentials(AccessKey, SecretKey)
                    .build();

判断minio桶名是否存在

    // 检查存储桶是否存在,如果不存在则创建它
    BucketExistsArgs exist = BucketExistsArgs.builder().bucket(BucketNameKmz).build();
       boolean result = minioClient.bucketExists(exist);
            if(!result){
                MakeBucketArgs create =MakeBucketArgs.builder().bucket(BucketNameKmz).build();
                minioClient.makeBucket(create);
                System.out.println("Bucket created: " + "bucket");
            }else {
                System.out.println("Bucket already exists: " + "bucket");
            }

检查minio桶下对象(文件)是否存在

     // 检查对象是否存在
     /**
     bucketName:桶名
     objectName:桶下文件(文件
     */
      boolean isObjectExist = minioClient.statObject(bucketName, objectName) != null;
        if (isObjectExist) {
                System.out.println("Object exists in bucket: " + bucketName);
            } else {
                System.out.println("Object not found in bucket: " + bucketName);
            }

设置桶为公共的

    // 设置桶为公共的
       minioClient.setBucketPolicy(
            SetBucketPolicyArgs.builder()
                                .bucket("cheshi")
                                .config("{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":[\"s3:GetObject\"],\"Resource\":[\"arn:aws:s3:::cheshi/*\"]}]}")
                                .build()
                );

删除存储桶中的对象

    // 设置桶为公共的
      minioClient.removeObject(
               RemoveObjectArgs.builder()
                                .bucket(bucketName)
                                .object(objectName)
                                .build()
                );

删除存储桶中的文件夹

链接: 待补

上传除存储桶中的对象

  // 上传文件
       PutObjectArgs putObjectArgs = PutObjectArgs.builder()
                    .bucket("my-bucket")
                    .object("my-object")
                    .filename("path/to/local/file")
                    .build();
       minioClient.putObject(putObjectArgs);
  //写入文件
      minioClient.putObject(
           PutObjectArgs.builder()
                        .bucket(bucketName)
                        .object(objectName)
                        .stream(chunk.getInputStream(), chunk.getSize(), -1)
                        .contentType(chunk.getContentType())
                        .build());

 byteArrayInputStream.available()
 //这段代码是使用MinIO Java客户端向MinIO服务器上传对象(文件或数据块)的操作。具体来说,它执行了以下操作:

//使用PutObjectArgs的builder()方法创建一个上传对象的参数构建器。
//使用.bucket(bucketName)指定存储桶的名称。
//使用.object(objectName)指定要上传的对象的名称。
//使用.stream(chunk.getInputStream(), chunk.getSize(), -1)指定要上传的对象的输入流、大小和偏移量。其中chunk.getInputStream()是获取要上传对象的输入流,chunk.getSize()是获取对象大小,-1表示不设置偏移量。
//使用.contentType(chunk.getContentType())指定要上传对象的内容类型。
//最后使用.build()方法构建上传对象的参数,然后通过minioClient.putObject()方法执行对象上传操作。
//这段代码的作用是将指定的对象(通过输入流chunk.getInputStream())上传到指定的存储桶中,并设置对象的名称和内容类型。

生成预签名的对象URL

使用MinIO Java客户端生成预签名的对象URL。预签名对象URL是一个临时的URL,用于执行一次性的对象操作,如上传、下载或删除对象。

  String fileUrl = minioClient.getPresignedObjectUrl(
      GetPresignedObjectUrlArgs.builder()
                                .method(Method.PUT)
                                .bucket(bucketName)
                                .object(objectName)
                                .build()
                );

执行对象的复制操作

         CopySource copySource = CopySource.builder()
                    .bucket(BucketNameKmz)
                    .object(pathOld)
                    .build();
                    
            minioClient.copyObject(
                    CopyObjectArgs.builder()
                            .source(copySource)
                            .bucket(BucketNameKmz)
                            .object(pathNew)
                            .build());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值