Untitled
unknown
plain_text
3 years ago
1.8 kB
12
Indexable
package co.id.bahasakita.webtreasury.configuration;
import co.id.bahasakita.webtreasury.properties.AwsProperties;
import co.id.bahasakita.webtreasury.service.AwsFileService;
import co.id.bahasakita.webtreasury.serviceimpl.AwsFileServiceImpl;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.client.builder.AwsClientBuilder;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@Slf4j
public class AwsConfiguration {
@Bean
@ConditionalOnMissingBean
public AmazonS3 amazonS3(AWSCredentialsProvider awsCredentialsProvider, AwsProperties awsProperties) {
log.info("aws host: {}", awsProperties.getHost());
log.info("aws bucket name: {}", awsProperties.getBucketName());
return AmazonS3ClientBuilder.standard()
.withCredentials(awsCredentialsProvider)
.withEndpointConfiguration(
new AwsClientBuilder.EndpointConfiguration(awsProperties.getHost(), awsProperties.getSigningRegion()))
.build();
}
@Bean
@ConditionalOnMissingBean
public AWSCredentialsProvider awsCredentialsProvider(AwsProperties awsProperties) {
return new AWSStaticCredentialsProvider(
new BasicAWSCredentials(awsProperties.getAccessKey(), awsProperties.getSecretKey()));
}
@Bean
@ConditionalOnMissingBean
public AwsFileService awsFileService(AmazonS3 amazonS3, AwsProperties awsProperties) {
return new AwsFileServiceImpl(amazonS3, awsProperties);
}
}
Editor is loading...