demo-k8s

Форк
0
96 строк · 2.9 Кб
1
package fullstackblog.apigatewayservice;
2

3
import io.minio.BucketExistsArgs;
4
import io.minio.GetObjectArgs;
5
import io.minio.MakeBucketArgs;
6
import io.minio.MinioClient;
7
import io.minio.PutObjectArgs;
8
import io.minio.errors.ErrorResponseException;
9
import io.minio.errors.InsufficientDataException;
10
import io.minio.errors.InternalException;
11
import io.minio.errors.InvalidResponseException;
12
import io.minio.errors.ServerException;
13
import io.minio.errors.XmlParserException;
14
import jakarta.annotation.PostConstruct;
15
import lombok.extern.slf4j.Slf4j;
16
import org.springframework.beans.factory.annotation.Value;
17
import org.springframework.core.io.Resource;
18
import org.springframework.stereotype.Service;
19

20
import java.io.IOException;
21
import java.io.InputStream;
22
import java.security.InvalidKeyException;
23
import java.security.NoSuchAlgorithmException;
24

25
@Slf4j
26
@Service
27
public class BinarySerevice {
28

29
    @Value("${minio.address}")
30
    private String minIOAddress;
31

32
    @Value("${minio.accessKey}")
33
    private String accessKey;
34

35
    @Value("${minio.secretKey}")
36
    private String secretKey;
37

38
    @Value("${minio.bucket}")
39
    private String bucket;
40

41
    @Value("${minio.objectName}")
42
    private String objectName;
43

44
    @Value("classpath:/test-file.png")
45
    private Resource resource;
46

47
    @PostConstruct
48
    public void init() {
49
        try {
50

51
            MinioClient minioClient =
52
                    MinioClient.builder()
53
                            .endpoint(minIOAddress)
54
                            .credentials(accessKey, secretKey)
55
                            .build();
56

57
            if (!minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucket).build())) {
58
                minioClient.makeBucket(
59
                        MakeBucketArgs
60
                                .builder()
61
                                .bucket(bucket)
62
                                .build()
63
                );
64
            }
65

66
            minioClient.putObject(PutObjectArgs
67
                    .builder()
68
                    .bucket(bucket)
69
                    .object(objectName)
70
                    .stream(resource.getInputStream(), -1, 10485760).build()
71
            );
72
        } catch (Exception e) {
73
            log.error("Can't connect to MinIO", e);
74
        }
75
    }
76

77
    public byte[] getFile() throws ServerException, InsufficientDataException, ErrorResponseException, IOException,
78
            NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException,
79
            InternalException {
80

81
        MinioClient minioClient =
82
                MinioClient.builder()
83
                        .endpoint(minIOAddress)
84
                        .credentials(accessKey, secretKey)
85
                        .build();
86

87
        InputStream stream =
88
                minioClient.getObject(GetObjectArgs
89
                        .builder()
90
                        .bucket(bucket)
91
                        .object(objectName)
92
                        .build());
93

94
        return stream.readAllBytes();
95
    }
96
}
97

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.