Minio 不存在bucket就创建并设置为public

89 阅读1分钟
@Bean
public MinioClient minioClient() {
    MinioClient minioClient = MinioClient.builder().endpoint(endpointUrl).credentials(accessKey, secretKey).build();

    try {
        boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
        if (!found) {
            minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
            String publicPolicy = String.format("{\n" +
                    "  "Version": "2012-10-17",\n" +
                    "  "Statement": [\n" +
                    "    {\n" +
                    "      "Effect": "Allow",\n" +
                    "      "Principal": "*",\n" +
                    "      "Action": ["s3:GetObject"],\n" +
                    "      "Resource": ["arn:aws:s3:::%s/*"]\n" +
                    "    }\n" +
                    "  ]\n" +
                    "}", bucketName);

            minioClient.setBucketPolicy(SetBucketPolicyArgs.builder().bucket(bucketName).config(publicPolicy).build());
        }
    } catch (Exception exception) {
        exception.getStackTrace();
    }

    return minioClient;
}