sean.zhou
2022-03-21 17835b967b48f2676cce3bbed081c6580602ee1c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package com.dji.sample.component.oss.model;
 
import io.minio.MinioClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.util.StringUtils;
 
/**
 * @author sean
 * @version 0.2
 * @date 2021/12/7
 */
@Configuration
public class MinIOConfiguration {
 
    /**
     * default
     */
    public static final String PROVIDER = "aws";
 
    /**
     * Whether to use the current storage service.
     */
    public static boolean enable;
 
    public static String endpoint;
 
    public static String accessKey;
 
    public static String secretKey;
 
    public static String region;
 
    public static String bucket;
 
    public static Integer expire;
 
    public static String objectDirPrefix;
 
    @Value("${minio.endpoint: http://localhost:9000/}")
    private void setEndpoint(String endpoint) {
        MinIOConfiguration.endpoint = endpoint;
    }
 
    @Value("${minio.access-key: minioadmin}")
    private void setAccessKey(String accessKey) {
        MinIOConfiguration.accessKey = accessKey;
    }
 
    @Value("${minio.secret-key: minioadmin}")
    private void setSecretKey(String secretKey) {
        MinIOConfiguration.secretKey = secretKey;
    }
 
    @Value("${minio.region: }")
    private void setRegion(String region) {
        MinIOConfiguration.region = region;
    }
 
    @Value("${minio.bucket: test}")
    private void setBucket(String bucket) {
        MinIOConfiguration.bucket = bucket;
    }
 
    @Value("${minio.expire: 3600}")
    private void setExpire(Integer expire) {
        MinIOConfiguration.expire = expire;
    }
 
    @Value("${minio.enable: false}")
    private void setEnable(boolean enable) {
        MinIOConfiguration.enable = enable;
    }
 
    @Value("${minio.object-dir-prefix: wayline}")
    private void setObjectDir(String objectDirPrefix) {
        MinIOConfiguration.objectDirPrefix = objectDirPrefix;
    }
 
    @Bean
    @Lazy
    public MinioClient minioClient() {
        MinioClient.Builder builder = MinioClient.builder()
                .endpoint(endpoint)
                .credentials(accessKey, secretKey);
        if (StringUtils.hasText(region)) {
            builder.region(MinIOConfiguration.region);
        }
        return builder.build();
    }
}