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();
+    }
 }