Giriş
Şu satırı dahil ederiz
import software.amazon.awssdk.services.s3.S3AsyncClient;
Maven
Şu satırı dahil ederiz
<!-- AWS SDK Java V2 --><dependency><groupId>software.amazon.awssdk</groupId><artifactId>s3</artifactId><version>2.18.41</version></dependency><dependency><groupId>software.amazon.awssdk</groupId><artifactId>netty-nio-client</artifactId><version>2.18.41</version></dependency>
application.properties şöyle olsun
# AWS properties aws: access-key: test secret-key: test region: eu-west-1 s3-bucket-name: my-test-bucket multipart-min-part-size: 5242880 # 5MB endpoint: http://localhost:4566/
constructor
Şu satırı dahil ederiz
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; import software.amazon.awssdk.http.async.SdkAsyncHttpClient; import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.S3Configuration;
Şöyle yaparız
@RequiredArgsConstructor
@Configuration
public class AwsS3Config {
private final AwsProperties s3ConfigProperties;
@Bean
public S3AsyncClient s3AsyncClient(AwsCredentialsProvider awsCredentialsProvider) {
return S3AsyncClient.builder()
.httpClient(sdkAsyncHttpClient())
.region(Region.of(s3ConfigProperties.getRegion()))
.credentialsProvider(awsCredentialsProvider)
.endpointOverride(URI.create(s3ConfigProperties.getEndpoint()))
.forcePathStyle(true)
.serviceConfiguration(s3Configuration()).build();
}
private SdkAsyncHttpClient sdkAsyncHttpClient() {
return NettyNioAsyncHttpClient.builder()
.writeTimeout(Duration.ZERO)
.maxConcurrency(64)
.build();
}
private S3Configuration s3Configuration() {
return S3Configuration.builder()
.checksumValidationEnabled(false)
.chunkedEncodingEnabled(true)
.build();
}
@Bean
AwsCredentialsProvider awsCredentialsProvider() {
return () -> AwsBasicCredentials.create(s3ConfigProperties.getAccessKey(),
s3ConfigProperties.getSecretKey());
}
}deleteObject metodu
Şöyle yaparız
public Mono<Void> deleteObject(@NotNull String objectKey) {
return Mono.just(DeleteObjectRequest.builder()
.bucket(s3ConfigProperties.getS3BucketName())
.key(objectKey)
.build())
.map(s3AsyncClient::deleteObject)
.flatMap(Mono::fromFuture)
.then();
}getObject metodu
Şöyle yaparız
public Mono<Void> deleteObject(@NotNull String objectKey) {
return Mono.just(DeleteObjectRequest.builder()
.bucket(s3ConfigProperties.getS3BucketName())
.key(objectKey)
.build())
.map(s3AsyncClient::deleteObject)
.flatMap(Mono::fromFuture)
.then();
}
Hiç yorum yok:
Yorum Gönder