diff --git a/src/rotary/client.clj b/src/rotary/client.clj index c7afc6a..0e8d6c3 100644 --- a/src/rotary/client.clj +++ b/src/rotary/client.clj @@ -3,7 +3,8 @@ (:use [clojure.algo.generic.functor :only (fmap)] [clojure.core.incubator :only (-?>>)]) (:require [clojure.string :as str]) - (:import com.amazonaws.auth.BasicAWSCredentials + (:import com.amazonaws.ClientConfiguration + com.amazonaws.auth.BasicAWSCredentials com.amazonaws.services.dynamodb.AmazonDynamoDBClient [com.amazonaws.services.dynamodb.model AttributeValue @@ -38,12 +39,14 @@ (defn- db-client* "Get a AmazonDynamoDBClient instance for the supplied credentials." - [cred] - (let [aws-creds (BasicAWSCredentials. (:access-key cred) (:secret-key cred)) - client (AmazonDynamoDBClient. aws-creds)] - (when-let [endpoint (:endpoint cred)] - (.setEndpoint client endpoint)) - client)) + [{:keys [access-key secret-key endpoint proxy-host proxy-port]}] + (let [aws-creds (BasicAWSCredentials. access-key secret-key) + client-config (ClientConfiguration.)] + (when proxy-host (.setProxyHost client-config proxy-host)) + (when proxy-port (.setProxyPort client-config proxy-port)) + (let [client (AmazonDynamoDBClient. aws-creds client-config)] + (when endpoint (.setEndpoint client endpoint)) + client))) (def db-client (memoize db-client*))