当前位置:   article > 正文

Minio8.2.3在Springboot 语法常用_minio权限控制 判断桶是否存在

minio权限控制 判断桶是否存在

MinIO Java客户端

minio使用的8X版本

创建存储对象

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

判断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");
            }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

检查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);
            }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

设置桶为公共的

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

删除存储桶中的对象

    // 设置桶为公共的
      minioClient.removeObject(
               RemoveObjectArgs.builder()
                                .bucket(bucketName)
                                .object(objectName)
                                .build()
                );
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

删除存储桶中的文件夹

链接: 待补

上传除存储桶中的对象

  // 上传文件
       PutObjectArgs putObjectArgs = PutObjectArgs.builder()
                    .bucket("my-bucket")
                    .object("my-object")
                    .filename("path/to/local/file")
                    .build();
       minioClient.putObject(putObjectArgs);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  //写入文件
      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())上传到指定的存储桶中,并设置对象的名称和内容类型。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

生成预签名的对象URL

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

  String fileUrl = minioClient.getPresignedObjectUrl(
      GetPresignedObjectUrlArgs.builder()
                                .method(Method.PUT)
                                .bucket(bucketName)
                                .object(objectName)
                                .build()
                );
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

执行对象的复制操作

         CopySource copySource = CopySource.builder()
                    .bucket(BucketNameKmz)
                    .object(pathOld)
                    .build();
                    
            minioClient.copyObject(
                    CopyObjectArgs.builder()
                            .source(copySource)
                            .bucket(BucketNameKmz)
                            .object(pathNew)
                            .build());
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/110921?site
推荐阅读
相关标签
  

闽ICP备14008679号