CPAN-Testers-Metabase-AWS
view release on metacpan or search on metacpan
lib/CPAN/Testers/Metabase/AWS.pm view on Meta::CPAN
my $sdb_domain = "${bucket}.metabase.${namespace}.${subspace}";
return Metabase::Librarian->new(
archive => Metabase::Archive::S3->new(
access_key_id => $self->access_key_id,
secret_access_key => $self->secret_access_key,
bucket => $self->bucket,
prefix => $s3_prefix,
compressed => 1,
retry => 1,
),
index => Metabase::Index::SimpleDB->new(
access_key_id => $self->access_key_id,
secret_access_key => $self->secret_access_key,
domain => $sdb_domain,
),
);
}
__PACKAGE__->meta->make_immutable;
1;
=pod
=head1 NAME
CPAN::Testers::Metabase::AWS - Metabase backend on Amazon Web Services
=head1 VERSION
version 1.999002
=head1 SYNOPSIS
=head2 Direct usage
use CPAN::Testers::Metabase::AWS;
my $mb = CPAN::Testers::Metabase::AWS->new(
bucket => 'myS3bucket',
namespace => 'prod'
);
$mb->public_librarian->search( %search spec );
...
=head2 Metabase::Web config
---
Model::Metabase:
class: CPAN::Testers::Metabase::AWS
args:
bucket: myS3bucket
namespace: prod
=head1 DESCRIPTION
This class instantiates a Metabase backend on the S3 and SimpleDB Amazon
Web Services (AWS). It uses L<Net::Amazon::Config> to provide user credentials
and the L<Metabase::Gateway> Role to provide actual functionality. As such,
it is mostly glue to get the right credentials to setup AWS clients and provide
them with standard resource names.
For example, given the C<<< bucket >>> "example" and the C<<< namespace >>> "alpha",
the following resource names would be used:
Public S3: http://example.s3.amazonaws.com/metabase/alpha/public/*
Public SDB domain: example.metabase.alpha.public
Private S3: http://example.s3.amazonaws.com/metabase/alpha/private/*
Private SDB domain: example.metabase.alpha.private
=head1 USAGE
=head2 new
my $mb = CPAN::Testers::Metabase::AWS->new(
bucket => 'myS3bucket',
namespace => 'prod',
profile_name => 'cpantesters',
);
Arguments for C<<< new >>>:
=over
=item *
C<<< bucket >>> -- required -- the Amazon S3 bucket name to hold both public and private
fact content. Bucket names must be unique across all of AWS. The bucket
name is also used as part of the SimpleDB namespace for consistency.
=item *
C<<< namespace >>> -- required -- a short phrase that uniquely identifies this
metabase. E.g. "dev", "test" or "prod". It is used to specify
specific locations within the S3 bucket and to uniquely identify a SimpleDB
domain for indexing.
=item *
C<<< amazon_config >>> -- optional -- a L<Net::Amazon::Config> object containing
Amazon Web Service credentials. If not provided, one will be created using
the default location for the config file.
=item *
C<<< profile_name >>> -- optional -- the name of a profile for use with
Net::Amazon::Config. If not provided, it defaults to 'cpantesters'.
=back
=head2 access_key_id
Returns the AWS Access Key ID.
=head2 secret_access_key
Returns the AWS Secret Access Key
=head2 Metabase::Gateway Role
This class does the L<Metabase::Gateway> role, including the following
methods:
=over
=item *
C<<< handle_submission >>>
=item *
C<<< handle_registration >>>
=item *
C<<< enqueue >>>
=back
see L<Metabase::Gateway> for more.
=head1 SEE ALSO
=over
=item *
L<CPAN::Testers::Metabase>
=item *
L<Metabase::Gateway>
=item *
L<Metabase::Web>
=item *
L<Net::Amazon::Config>
( run in 2.178 seconds using v1.01-cache-2.11-cpan-5837b0d9d2c )