JCR-3928: Enable pathStyleAccess in AWS Client (patch by Andrei Filimonov and Piet de Nooijer)
git-svn-id: https://svn.apache.org/repos/asf/jackrabbit/trunk@1891015 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/S3Constants.java b/jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/S3Constants.java
index 29da427..c2b402c 100644
--- a/jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/S3Constants.java
+++ b/jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/S3Constants.java
@@ -108,6 +108,11 @@
public static final String PROXY_PORT = "proxyPort";
/**
+ * Path style access flag true/false
+ */
+ public static final String S3_PATH_STYLE_ACCESS = "pathStyleAccess";
+
+ /**
* private constructor so that class cannot initialized from outside.
*/
private S3Constants() {
diff --git a/jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/Utils.java b/jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/Utils.java
index 88c0fc8..c50efbf 100644
--- a/jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/Utils.java
+++ b/jackrabbit-aws-ext/src/main/java/org/apache/jackrabbit/aws/ext/Utils.java
@@ -34,6 +34,7 @@
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
+import com.amazonaws.services.s3.S3ClientOptions;
import com.amazonaws.services.s3.model.ObjectListing;
import com.amazonaws.services.s3.model.Region;
import com.amazonaws.services.s3.model.S3ObjectSummary;
@@ -126,6 +127,7 @@
*/
s3service.setEndpoint(endpoint);
LOG.info("S3 service endpoint [{}] ", endpoint);
+ s3service.setS3ClientOptions(getS3ClientOptions(prop));
return s3service;
}
@@ -224,4 +226,8 @@
return cc;
}
+ private static S3ClientOptions getS3ClientOptions(Properties prop) {
+ boolean pathStyleAccess = Boolean.parseBoolean(prop.getProperty(S3Constants.S3_PATH_STYLE_ACCESS));
+ return S3ClientOptions.builder().setPathStyleAccess(pathStyleAccess).build();
+ }
}