diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3ClientFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3ClientFactory.java index e493ac666c702..9d4e1fa832df4 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3ClientFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3ClientFactory.java @@ -19,6 +19,7 @@ import com.amazonaws.auth.AWSCredentialsProvider; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; +import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; import com.amazonaws.auth.InstanceProfileCredentialsProvider; import com.amazonaws.metrics.RequestMetricCollector; import com.amazonaws.regions.Region; @@ -151,7 +152,7 @@ private AWSCredentialsProvider getAwsCredentialsProvider(Configuration conf, Hiv return getCustomAWSCredentialsProvider(conf, providerClass); } - throw new RuntimeException("S3 credentials not configured"); + return DefaultAWSCredentialsProviderChain.getInstance(); } private static AWSCredentialsProvider getCustomAWSCredentialsProvider(Configuration conf, String providerClass) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystem.java b/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystem.java index 8669a8c060c7b..616abc992037c 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystem.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystem.java @@ -21,6 +21,7 @@ import com.amazonaws.auth.AWSCredentialsProvider; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; +import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; import com.amazonaws.auth.InstanceProfileCredentialsProvider; import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration; import com.amazonaws.event.ProgressEvent; @@ -754,7 +755,7 @@ private AWSCredentialsProvider createAwsCredentialsProvider(URI uri, Configurati return getCustomAWSCredentialsProvider(uri, conf, providerClass); } - throw new RuntimeException("S3 credentials not configured"); + return DefaultAWSCredentialsProviderChain.getInstance(); } private static AWSCredentialsProvider getCustomAWSCredentialsProvider(URI uri, Configuration conf, String providerClass) diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/s3/TestPrestoS3FileSystem.java b/presto-hive/src/test/java/com/facebook/presto/hive/s3/TestPrestoS3FileSystem.java index 769f25f919857..4d8a17bbc8b56 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/s3/TestPrestoS3FileSystem.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/s3/TestPrestoS3FileSystem.java @@ -18,6 +18,7 @@ import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.AWSCredentialsProvider; import com.amazonaws.auth.AWSStaticCredentialsProvider; +import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; import com.amazonaws.auth.InstanceProfileCredentialsProvider; import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.AmazonS3EncryptionClient; @@ -145,8 +146,8 @@ public void testInstanceCredentialsEnabled() } } - @Test(expectedExceptions = RuntimeException.class, expectedExceptionsMessageRegExp = "S3 credentials not configured") - public void testInstanceCredentialsDisabled() + @Test + public void testDefaultCredentials() throws Exception { Configuration config = new Configuration(); @@ -154,6 +155,7 @@ public void testInstanceCredentialsDisabled() try (PrestoS3FileSystem fs = new PrestoS3FileSystem()) { fs.initialize(new URI("s3n://test-bucket/"), config); + assertInstanceOf(getAwsCredentialsProvider(fs), DefaultAWSCredentialsProviderChain.class); } }