diff --git a/lib/dynamoid/adapter_plugin/aws_sdk_v2.rb b/lib/dynamoid/adapter_plugin/aws_sdk_v2.rb index f9f03c19..02a0fbba 100644 --- a/lib/dynamoid/adapter_plugin/aws_sdk_v2.rb +++ b/lib/dynamoid/adapter_plugin/aws_sdk_v2.rb @@ -64,11 +64,15 @@ def connection_config if Dynamoid::Config.endpoint? @connection_hash[:endpoint] = Dynamoid::Config.endpoint end - if Dynamoid::Config.access_key? - @connection_hash[:access_key_id] = Dynamoid::Config.access_key - end - if Dynamoid::Config.secret_key? - @connection_hash[:secret_access_key] = Dynamoid::Config.secret_key + if Dynamoid::Config.credentials? + @connection_hash[:credentials] = Dynamoid::Config.credentials + else + if Dynamoid::Config.access_key? + @connection_hash[:access_key_id] = Dynamoid::Config.access_key + end + if Dynamoid::Config.secret_key? + @connection_hash[:secret_access_key] = Dynamoid::Config.secret_key + end end if Dynamoid::Config.region? @connection_hash[:region] = Dynamoid::Config.region @@ -534,7 +538,7 @@ def query(table_name, opts = {}) scan_limit = opts.delete(:scan_limit) batch_size = opts.delete(:batch_size) exclusive_start_key = opts.delete(:exclusive_start_key) - limit = [record_limit, scan_limit, batch_size].compact.min + limit = [record_limit, scan_limit, batch_size].compact.min key_conditions = { hk => { @@ -632,7 +636,7 @@ def scan(table_name, scan_hash = {}, select_opts = {}) request_limit = [record_limit, scan_limit, batch_size].compact.min request[:limit] = request_limit if request_limit request[:exclusive_start_key] = exclusive_start_key if exclusive_start_key - + if scan_hash.present? request[:scan_filter] = scan_hash.reduce({}) do |memo, (attr, cond)| memo.merge(attr.to_s => { diff --git a/lib/dynamoid/config.rb b/lib/dynamoid/config.rb index 891cf666..4035b7de 100644 --- a/lib/dynamoid/config.rb +++ b/lib/dynamoid/config.rb @@ -18,6 +18,7 @@ module Config option :access_key, default: nil option :secret_key, default: nil option :region, default: nil + option :credentials, default: nil option :batch_size, default: 100 option :read_capacity, default: 100 option :write_capacity, default: 20