backend/src/main/java/com/magamochi/image/config/S3ClientConfig.java

53 lines
1.7 KiB
Java

package com.magamochi.image.config;
import java.net.URI;
import org.springframework.beans.factory.annotation.Value;
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 software.amazon.awssdk.services.s3.presigner.S3Presigner;
@Configuration
public class S3ClientConfig {
@Value("${minio.accessKey}")
private String accessKey;
@Value("${minio.secretKey}")
private String secretKey;
@Value("${minio.endpoint}")
private String endpoint;
@Bean
public S3Client s3Client() {
var credentials = AwsBasicCredentials.create(accessKey, secretKey);
var configuration = S3Configuration.builder().pathStyleAccessEnabled(true).build();
return S3Client.builder()
.endpointOverride(URI.create(endpoint))
.credentialsProvider(StaticCredentialsProvider.create(credentials))
.region(Region.US_EAST_1)
.serviceConfiguration(configuration)
.build();
}
@Bean
public S3Presigner s3Presigner() {
var credentials = AwsBasicCredentials.create(accessKey, secretKey);
var configuration = S3Configuration.builder().pathStyleAccessEnabled(true).build();
return S3Presigner.builder()
.endpointOverride(URI.create(endpoint))
.credentialsProvider(StaticCredentialsProvider.create(credentials))
.region(Region.US_EAST_1)
.serviceConfiguration(configuration)
.build();
}
}