Net-Amazon-Config
view release on metacpan or search on metacpan
lib/Net/Amazon/Config.pm view on Meta::CPAN
}
return bless \%args, $class;
}
sub get_profile {
my ( $self, $profile_name ) = @_;
my $config = Config::Tiny->read( $self->config_path );
$profile_name = $config->{_}{default} unless defined $profile_name;
my $params = $config->{$profile_name}
or return;
$params->{profile_name} = $profile_name;
my $profile = eval { Net::Amazon::Config::Profile->new($params) };
if ($@) {
Carp::croak "Invalid profile: $@";
}
return $profile;
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
Net::Amazon::Config - Manage Amazon Web Services credentials
=head1 VERSION
version 0.002
=head1 SYNOPSIS
=head2 Example
use Net::Amazon::Config;
# default location and profile
my $profile = Net::Amazon::Config->new->get_profile;
# use access key ID and secret access key with S3
use Net::Amazon::S3;
my $s3 = Net::Amazon::S3->new(
aws_access_key_id => $profile->access_key_id,
aws_secret_access_key => $profile->secret_access_key,
);
=head2 Config Format
default = johndoe
[johndoe]
access_key_id = XXXXXXXXXXXXXXXXXXXX
secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
certificate_file = my-cert.pem
private_key_file = my-key.pem
ec2_keypair_name = my-ec2-keypair
ec2_keypair_file = ec2-private-key.pem
aws_account_id = 0123-4567-8901
canonical_user_id = <64-character string>
=head1 DESCRIPTION
This module lets you keep Amazon Web Services credentials in a
configuration file for use with different tools that need them.
=head1 USAGE
=head2 new()
my $config = Net::Amazon::Config->new( %params );
Valid C<<< %params >>> entries include:
=over
=item *
config_dir -- directory containing the config file
(and the default location for other files named in the config file).
Defaults to C<<< $HOME/.amazon >>>
=item *
config_file -- defaults to C<<< profiles.conf >>>
=back
Returns an object or undef if no config file can be found.
=head2 config_path()
my $path = $config->config_path;
Returns the absolute path to the configuration file.
=head2 get_profile()
my $profile = $config->get_profile( $name );
If C<<< $name >>> is omitted or undefined, returns the profile named in the
top-level key C<<< default >>> in the config file. If the profile does not
exist, get profile returns undef or an empty list.
=head1 ENVIRONMENT
=over
=item *
NET_AMAZON_CONFIG -- absolute path to config file or file name relative
to the configuration directory
=item *
NET_AMAZON_CONFIG_DIR -- configuration directory
( run in 2.061 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )