Skip to content

Commit c932f96

Browse files
committed
Improve compatibility with S3-compliant storages
For rationale: aws/aws-sdk-java-v2#6055
1 parent f9da1ee commit c932f96

File tree

3 files changed

+6
-12
lines changed

3 files changed

+6
-12
lines changed

lib/trino-filesystem-s3/src/main/java/io/trino/filesystem/s3/S3FileSystemLoader.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@
2424
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
2525
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
2626
import software.amazon.awssdk.auth.credentials.WebIdentityTokenFileCredentialsProvider;
27-
import software.amazon.awssdk.core.checksums.RequestChecksumCalculation;
2827
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
2928
import software.amazon.awssdk.http.SdkHttpClient;
3029
import software.amazon.awssdk.http.apache.ApacheHttpClient;
3130
import software.amazon.awssdk.http.apache.ProxyConfiguration;
3231
import software.amazon.awssdk.metrics.MetricPublisher;
3332
import software.amazon.awssdk.regions.Region;
33+
import software.amazon.awssdk.services.s3.LegacyMd5Plugin;
3434
import software.amazon.awssdk.services.s3.S3Client;
3535
import software.amazon.awssdk.services.s3.S3ClientBuilder;
3636
import software.amazon.awssdk.services.s3.S3Configuration;
@@ -53,7 +53,6 @@
5353
import static java.lang.Math.toIntExact;
5454
import static java.util.Objects.requireNonNull;
5555
import static java.util.concurrent.Executors.newCachedThreadPool;
56-
import static software.amazon.awssdk.core.checksums.ResponseChecksumValidation.WHEN_REQUIRED;
5756

5857
final class S3FileSystemLoader
5958
implements Function<Location, TrinoFileSystemFactory>
@@ -180,8 +179,7 @@ private static S3ClientFactory s3ClientFactory(SdkHttpClient httpClient, OpenTel
180179
s3.overrideConfiguration(overrideConfiguration);
181180
s3.crossRegionAccessEnabled(config.isCrossRegionAccessEnabled());
182181
s3.httpClient(httpClient);
183-
s3.responseChecksumValidation(WHEN_REQUIRED);
184-
s3.requestChecksumCalculation(RequestChecksumCalculation.WHEN_REQUIRED);
182+
s3.addPlugin(LegacyMd5Plugin.create());
185183

186184
region.map(Region::of).ifPresent(s3::region);
187185
endpoint.map(URI::create).ifPresent(s3::endpointOverride);

lib/trino-filesystem-s3/src/test/java/io/trino/filesystem/s3/TestS3FileSystemMinIo.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,14 @@
2020
import org.junit.jupiter.api.Test;
2121
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
2222
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
23-
import software.amazon.awssdk.core.checksums.RequestChecksumCalculation;
2423
import software.amazon.awssdk.regions.Region;
24+
import software.amazon.awssdk.services.s3.LegacyMd5Plugin;
2525
import software.amazon.awssdk.services.s3.S3Client;
2626

2727
import java.io.IOException;
2828
import java.net.URI;
2929

3030
import static org.assertj.core.api.Assertions.assertThatThrownBy;
31-
import static software.amazon.awssdk.core.checksums.ResponseChecksumValidation.WHEN_REQUIRED;
3231

3332
public class TestS3FileSystemMinIo
3433
extends AbstractTestS3FileSystem
@@ -67,8 +66,7 @@ protected S3Client createS3Client()
6766
.endpointOverride(URI.create(minio.getMinioAddress()))
6867
.region(Region.of(Minio.MINIO_REGION))
6968
.forcePathStyle(true)
70-
.responseChecksumValidation(WHEN_REQUIRED)
71-
.requestChecksumCalculation(RequestChecksumCalculation.WHEN_REQUIRED)
69+
.addPlugin(LegacyMd5Plugin.create())
7270
.credentialsProvider(StaticCredentialsProvider.create(
7371
AwsBasicCredentials.create(Minio.MINIO_ACCESS_KEY, Minio.MINIO_SECRET_KEY)))
7472
.build();

plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/s3/S3FileSystemExchangeStorage.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,11 @@
5757
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
5858
import software.amazon.awssdk.awscore.endpoint.AwsClientEndpointProvider;
5959
import software.amazon.awssdk.core.async.AsyncRequestBody;
60-
import software.amazon.awssdk.core.checksums.RequestChecksumCalculation;
61-
import software.amazon.awssdk.core.checksums.ResponseChecksumValidation;
6260
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
6361
import software.amazon.awssdk.core.internal.retry.SdkDefaultRetryStrategy;
6462
import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient;
6563
import software.amazon.awssdk.regions.Region;
64+
import software.amazon.awssdk.services.s3.LegacyMd5Plugin;
6665
import software.amazon.awssdk.services.s3.S3AsyncClient;
6766
import software.amazon.awssdk.services.s3.S3AsyncClientBuilder;
6867
import software.amazon.awssdk.services.s3.S3Configuration;
@@ -485,8 +484,7 @@ private S3AsyncClient createS3AsyncClient(
485484
.serviceConfiguration(S3Configuration.builder()
486485
.pathStyleAccessEnabled(isS3PathStyleAccess)
487486
.build())
488-
.requestChecksumCalculation(RequestChecksumCalculation.WHEN_REQUIRED)
489-
.responseChecksumValidation(ResponseChecksumValidation.WHEN_REQUIRED)
487+
.addPlugin(LegacyMd5Plugin.create())
490488
.httpClientBuilder(NettyNioAsyncHttpClient.builder()
491489
.maxConcurrency(maxConcurrency)
492490
.maxPendingConnectionAcquires(maxPendingConnectionAcquires)

0 commit comments

Comments
 (0)