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 9621ca7..29da427 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 @@ -98,6 +98,16 @@ public static final String S3_ENCRYPTION_SSE_S3 = "SSE_S3"; /** + * Constant to set proxy host. + */ + public static final String PROXY_HOST = "proxyHost"; + + /** + * Constant to set proxy port. + */ + public static final String PROXY_PORT = "proxyPort"; + + /** * 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 d5d0ba1..2ca6a65 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 @@ -173,15 +173,30 @@ int socketTimeOut = Integer.parseInt(prop.getProperty(S3Constants.S3_SOCK_TIMEOUT)); int maxConnections = Integer.parseInt(prop.getProperty(S3Constants.S3_MAX_CONNS)); int maxErrorRetry = Integer.parseInt(prop.getProperty(S3Constants.S3_MAX_ERR_RETRY)); - ClientConfiguration cc = new ClientConfiguration(); + String protocol = prop.getProperty(S3Constants.S3_CONN_PROTOCOL); + String proxyHost = prop.getProperty(S3Constants.PROXY_HOST); + String proxyPort = prop.getProperty(S3Constants.PROXY_PORT); + + ClientConfiguration cc = new ClientConfiguration(); + if (protocol != null && protocol.equalsIgnoreCase("http")) { cc.setProtocol(Protocol.HTTP); } + + if (proxyHost != null && !proxyHost.isEmpty()) { + cc.setProxyHost(proxyHost); + } + + if (proxyPort != null && !proxyPort.isEmpty()) { + cc.setProxyPort(Integer.parseInt(proxyPort)); + } + cc.setConnectionTimeout(connectionTimeOut); cc.setSocketTimeout(socketTimeOut); cc.setMaxConnections(maxConnections); cc.setMaxErrorRetry(maxErrorRetry); + return cc; } diff --git a/jackrabbit-aws-ext/src/test/resources/aws.properties b/jackrabbit-aws-ext/src/test/resources/aws.properties index cddeb72..59bf1a5 100644 --- a/jackrabbit-aws-ext/src/test/resources/aws.properties +++ b/jackrabbit-aws-ext/src/test/resources/aws.properties @@ -42,4 +42,6 @@ maxErrorRetry=10 # maximum concurrent threads to write to S3. writeThreads=10 - +# proxy configurations (optional) +proxyHost= +proxyPort=