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