fixed image locale storage on minio

This commit is contained in:
SlimusMinus
2026-07-10 01:27:30 +03:00
parent 712a5f1e2b
commit f371a442d0
12 changed files with 415 additions and 90 deletions

View File

@@ -0,0 +1,15 @@
package com.krylov.refound.config;
import jakarta.validation.constraints.NotBlank;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;
@Validated
@ConfigurationProperties(prefix = "minio")
public record MinioProperties (
@NotBlank String endpoint,
@NotBlank String bucket,
@NotBlank String accessKey,
@NotBlank String secretKey,
@NotBlank String region
) {}

View File

@@ -0,0 +1,33 @@
package com.krylov.refound.config;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.S3Configuration;
import java.net.URI;
@Configuration
@RequiredArgsConstructor
public class S3ClientConfig {
private final MinioProperties properties;
@Bean
public S3Client s3Client() {
return S3Client.builder()
.endpointOverride(URI.create(properties.endpoint()))
.region(Region.of(properties.region()))
.credentialsProvider(StaticCredentialsProvider.create(
AwsBasicCredentials.create(properties.accessKey(), properties.secretKey())))
// ВАЖНО для MinIO: path-style вместо virtual-hosted style
.serviceConfiguration(S3Configuration.builder()
.pathStyleAccessEnabled(true)
.build())
.build();
}
}