Skip to content

Commit a960f4d

Browse files
authored
Handle AWS session token (#415)
Co-authored-by: umihico <[email protected]>
1 parent f225361 commit a960f4d

File tree

3 files changed

+6
-1
lines changed

3 files changed

+6
-1
lines changed

lib/sitemap_generator/adapters/aws_sdk_adapter.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,14 @@ class AwsSdkAdapter
2929
# All other options you provide are passed directly to the AWS client.
3030
# See https://docs.aws.amazon.com/sdk-for-ruby/v2/api/Aws/S3/Client.html#initialize-instance_method
3131
# for a full list of supported options.
32-
def initialize(bucket, aws_access_key_id: nil, aws_secret_access_key: nil, aws_region: nil, aws_endpoint: nil, acl: 'public-read', cache_control: 'private, max-age=0, no-cache', **options)
32+
def initialize(bucket, aws_access_key_id: nil, aws_secret_access_key: nil, aws_session_token: nil, aws_region: nil, aws_endpoint: nil, acl: 'public-read', cache_control: 'private, max-age=0, no-cache', **options)
3333
@bucket = bucket
3434
@acl = acl
3535
@cache_control = cache_control
3636
@options = options
3737
set_option_unless_set(:access_key_id, aws_access_key_id)
3838
set_option_unless_set(:secret_access_key, aws_secret_access_key)
39+
set_option_unless_set(:session_token, aws_session_token)
3940
set_option_unless_set(:region, aws_region)
4041
set_option_unless_set(:endpoint, aws_endpoint)
4142
end

lib/sitemap_generator/adapters/s3_adapter.rb

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class S3Adapter
2525
def initialize(opts = {})
2626
@aws_access_key_id = opts[:aws_access_key_id] || ENV['AWS_ACCESS_KEY_ID']
2727
@aws_secret_access_key = opts[:aws_secret_access_key] || ENV['AWS_SECRET_ACCESS_KEY']
28+
@aws_session_token = opts[:aws_session_token] || ENV['AWS_SESSION_TOKEN']
2829
@fog_provider = opts[:fog_provider] || ENV['FOG_PROVIDER']
2930
@fog_directory = opts[:fog_directory] || ENV['FOG_DIRECTORY']
3031
@fog_region = opts[:fog_region] || ENV['FOG_REGION']
@@ -43,6 +44,7 @@ def write(location, raw_data)
4344
if @aws_access_key_id && @aws_secret_access_key
4445
credentials[:aws_access_key_id] = @aws_access_key_id
4546
credentials[:aws_secret_access_key] = @aws_secret_access_key
47+
credentials[:aws_session_token] = @aws_session_token if @aws_session_token
4648
else
4749
credentials[:use_iam_profile] = true
4850
end

spec/sitemap_generator/adapters/s3_adapter_spec.rb

+2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
{
3030
aws_access_key_id: 'aws_access_key_id',
3131
aws_secret_access_key: 'aws_secret_access_key',
32+
aws_session_token: 'aws_session_token',
3233
fog_provider: 'fog_provider',
3334
fog_directory: 'fog_directory',
3435
fog_region: 'fog_region',
@@ -51,6 +52,7 @@
5152
it 'sets options on the instance' do
5253
expect(adapter.instance_variable_get(:@aws_access_key_id)).to eq('aws_access_key_id')
5354
expect(adapter.instance_variable_get(:@aws_secret_access_key)).to eq('aws_secret_access_key')
55+
expect(adapter.instance_variable_get(:@aws_session_token)).to eq('aws_session_token')
5456
expect(adapter.instance_variable_get(:@fog_provider)).to eq('fog_provider')
5557
expect(adapter.instance_variable_get(:@fog_directory)).to eq('fog_directory')
5658
expect(adapter.instance_variable_get(:@fog_region)).to eq('fog_region')

0 commit comments

Comments
 (0)