demo-k8s
96 строк · 2.9 Кб
1package fullstackblog.apigatewayservice;
2
3import io.minio.BucketExistsArgs;
4import io.minio.GetObjectArgs;
5import io.minio.MakeBucketArgs;
6import io.minio.MinioClient;
7import io.minio.PutObjectArgs;
8import io.minio.errors.ErrorResponseException;
9import io.minio.errors.InsufficientDataException;
10import io.minio.errors.InternalException;
11import io.minio.errors.InvalidResponseException;
12import io.minio.errors.ServerException;
13import io.minio.errors.XmlParserException;
14import jakarta.annotation.PostConstruct;
15import lombok.extern.slf4j.Slf4j;
16import org.springframework.beans.factory.annotation.Value;
17import org.springframework.core.io.Resource;
18import org.springframework.stereotype.Service;
19
20import java.io.IOException;
21import java.io.InputStream;
22import java.security.InvalidKeyException;
23import java.security.NoSuchAlgorithmException;
24
25@Slf4j
26@Service
27public class BinarySerevice {
28
29@Value("${minio.address}")
30private String minIOAddress;
31
32@Value("${minio.accessKey}")
33private String accessKey;
34
35@Value("${minio.secretKey}")
36private String secretKey;
37
38@Value("${minio.bucket}")
39private String bucket;
40
41@Value("${minio.objectName}")
42private String objectName;
43
44@Value("classpath:/test-file.png")
45private Resource resource;
46
47@PostConstruct
48public void init() {
49try {
50
51MinioClient minioClient =
52MinioClient.builder()
53.endpoint(minIOAddress)
54.credentials(accessKey, secretKey)
55.build();
56
57if (!minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucket).build())) {
58minioClient.makeBucket(
59MakeBucketArgs
60.builder()
61.bucket(bucket)
62.build()
63);
64}
65
66minioClient.putObject(PutObjectArgs
67.builder()
68.bucket(bucket)
69.object(objectName)
70.stream(resource.getInputStream(), -1, 10485760).build()
71);
72} catch (Exception e) {
73log.error("Can't connect to MinIO", e);
74}
75}
76
77public byte[] getFile() throws ServerException, InsufficientDataException, ErrorResponseException, IOException,
78NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException,
79InternalException {
80
81MinioClient minioClient =
82MinioClient.builder()
83.endpoint(minIOAddress)
84.credentials(accessKey, secretKey)
85.build();
86
87InputStream stream =
88minioClient.getObject(GetObjectArgs
89.builder()
90.bucket(bucket)
91.object(objectName)
92.build());
93
94return stream.readAllBytes();
95}
96}
97