fixed image locale storage on minio
This commit is contained in:
15
src/main/java/com/krylov/refound/config/MinioProperties.java
Normal file
15
src/main/java/com/krylov/refound/config/MinioProperties.java
Normal 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
|
||||
) {}
|
||||
33
src/main/java/com/krylov/refound/config/S3ClientConfig.java
Normal file
33
src/main/java/com/krylov/refound/config/S3ClientConfig.java
Normal 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();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user