From 3d40eedb74a80e32491f2c3aacc315b05082a1b1 Mon Sep 17 00:00:00 2001 From: Thomas Leing Date: Wed, 15 Mar 2023 13:45:21 -0700 Subject: [PATCH 1/2] Add support for dualside encryption even if acceleration is off --- .../main/java/com/amazonaws/services/s3/AmazonS3Client.java | 5 +++++ .../java/com/amazonaws/services/s3/internal/Constants.java | 2 ++ 2 files changed, 7 insertions(+) diff --git a/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java b/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java index c0fc165c16..7ac6595bf6 100644 --- a/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java +++ b/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java @@ -4764,6 +4764,11 @@ protected Request createRequest(String bu clientConfiguration); } } + else { + if (clientOptions.isDualstackEnabled()) { + endpoint = RuntimeHttpUtils.toUri(Constants.S3_DUALSTACK_HOSTNAME, clientConfiguration); + } + } request.setHttpMethod(httpMethod); resolveRequestEndpoint(request, bucketName, key, endpoint); diff --git a/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/internal/Constants.java b/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/internal/Constants.java index ea107171e1..6de9c04888 100644 --- a/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/internal/Constants.java +++ b/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/internal/Constants.java @@ -36,6 +36,8 @@ public class Constants { public static final String S3_EXTERNAL_1_HOSTNAME = "s3-external-1.amazonaws.com"; /** Service hostname for accessing accelerated S3 buckets */ public static final String S3_ACCELERATE_HOSTNAME = "s3-accelerate.amazonaws.com"; + /** Service hostname for accessing dualstack S3 buckets */ + public static final String S3_DUALSTACK_HOSTNAME = "s3.dualstack.amazonaws.com"; /** Service hostname for accessing dualstack accelerated S3 buckets */ public static final String S3_ACCELERATE_DUALSTACK_HOSTNAME = "s3-accelerate.dualstack.amazonaws.com"; From ba5acf27fa35cfd1ece693819bef6a906fffcf28 Mon Sep 17 00:00:00 2001 From: Thomas Leing Date: Wed, 15 Mar 2023 17:06:35 -0700 Subject: [PATCH 2/2] Use correct hostname (include region) --- .../main/java/com/amazonaws/services/s3/AmazonS3Client.java | 3 ++- .../java/com/amazonaws/services/s3/internal/Constants.java | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java b/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java index 7ac6595bf6..60ff433898 100644 --- a/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java +++ b/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java @@ -4766,7 +4766,8 @@ protected Request createRequest(String bu } else { if (clientOptions.isDualstackEnabled()) { - endpoint = RuntimeHttpUtils.toUri(Constants.S3_DUALSTACK_HOSTNAME, clientConfiguration); + String hostname = String.format(Constants.S3_DUALSTACK_HOSTNAME, getRegionName()); + endpoint = RuntimeHttpUtils.toUri(hostname, clientConfiguration); } } diff --git a/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/internal/Constants.java b/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/internal/Constants.java index 6de9c04888..f179de3dac 100644 --- a/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/internal/Constants.java +++ b/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/internal/Constants.java @@ -36,8 +36,8 @@ public class Constants { public static final String S3_EXTERNAL_1_HOSTNAME = "s3-external-1.amazonaws.com"; /** Service hostname for accessing accelerated S3 buckets */ public static final String S3_ACCELERATE_HOSTNAME = "s3-accelerate.amazonaws.com"; - /** Service hostname for accessing dualstack S3 buckets */ - public static final String S3_DUALSTACK_HOSTNAME = "s3.dualstack.amazonaws.com"; + /** Service hostname for accessing dualstack S3 buckets; format argument is the region */ + public static final String S3_DUALSTACK_HOSTNAME = "s3.dualstack.%s.amazonaws.com"; /** Service hostname for accessing dualstack accelerated S3 buckets */ public static final String S3_ACCELERATE_DUALSTACK_HOSTNAME = "s3-accelerate.dualstack.amazonaws.com";