diff --git a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/DefaultS3ClientFactory.java b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/DefaultS3ClientFactory.java index b5e0afbf9e8e9..0b18ce999f813 100644 --- a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/DefaultS3ClientFactory.java +++ b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/DefaultS3ClientFactory.java @@ -271,8 +271,10 @@ protected ClientOverrideConfiguration.Builder createClientOverrideConfiguration( *
  • If endpoint is configured via via fs.s3a.endpoint, set it. * If no region is configured, try to parse region from endpoint.
  • *
  • If no region is configured, and it could not be parsed from the endpoint, - * set the default region as US_EAST_2 and enable cross region access.
  • + * set the default region as US_EAST_2 *
  • If configured region is empty, fallback to SDK resolution chain.
  • + *
  • S3 cross region is enabled by default irrespective of region or endpoint + * is set or not.
  • * * * @param builder S3 client builder. diff --git a/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3AEndpointRegion.java b/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3AEndpointRegion.java index 18cb985065f3f..80b061de03183 100644 --- a/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3AEndpointRegion.java +++ b/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3AEndpointRegion.java @@ -356,6 +356,10 @@ public void testWithOutCrossRegionAccess() throws Exception { // skip the test if the region is sa-east-1 skipCrossRegionTest(); final Configuration newConf = new Configuration(getConfiguration()); + removeBaseAndBucketOverrides(newConf, + ENDPOINT, + AWS_S3_CROSS_REGION_ACCESS_ENABLED, + AWS_REGION); // disable cross region access newConf.setBoolean(AWS_S3_CROSS_REGION_ACCESS_ENABLED, false); newConf.set(AWS_REGION, SA_EAST_1); @@ -374,6 +378,7 @@ public void testWithCrossRegionAccess() throws Exception { skipCrossRegionTest(); final Configuration newConf = new Configuration(getConfiguration()); removeBaseAndBucketOverrides(newConf, + ENDPOINT, AWS_S3_CROSS_REGION_ACCESS_ENABLED, AWS_REGION); // enable cross region access