Amazon-S3
view release on metacpan or search on metacpan
t/lib/S3TestUtils.pm view on Meta::CPAN
my $rsp = HTTP::Tiny->new->get( 'http://' . "$host/_localstack/health" );
die "ERROR: localstack is not available\n"
if !$rsp->{success};
require JSON;
my $services = JSON->new->decode( $rsp->{content} );
die "S3 not available\n"
if $services->{services}{s3} ne 'running';
}
elsif ( defined $ENV{AMAZON_S3_MINIO} ) {
$host //= $DEFAULT_MINIO_HOST;
$ENV{AMAZON_S3_SKIP_ACLS} = $TRUE;
$ENV{AMAZON_S3_EXPENSIVE_TESTS} = $TRUE;
$ENV{AMAZON_S3_SKIP_REGION_CONSTRAINT_TEST} = $TRUE;
}
$host //= 's3.amazonaws.com';
return $host;
}
########################################################################
sub get_s3_service {
########################################################################
my ( $host, $raise_error ) = @_;
die "ERROR: usage: get_s3_service(host)\n"
if !$host;
my $s3 = eval {
if ( $ENV{AMAZON_S3_CREDENTIALS} ) {
require Amazon::Credentials;
return Amazon::S3->new(
{ credentials => Amazon::Credentials->new,
host => $host,
secure => is_aws(),
dns_bucket_names => $ENV{AMAZON_S3_DNS_BUCKET_NAMES},
level => $ENV{DEBUG} ? 'trace' : 'error',
raise_error => $raise_error,
}
);
}
else {
return Amazon::S3->new(
{ aws_access_key_id => $ENV{AWS_ACCESS_KEY_ID},
aws_secret_access_key => $ENV{AWS_SECRET_ACCESS_KEY},
token => $ENV{AWS_SESSION_TOKEN},
host => $host,
secure => is_aws(),
dns_bucket_names => $ENV{AMAZON_S3_DNS_BUCKET_NAMES},
level => $ENV{DEBUG} ? 'trace' : 'error',
raise_error => $raise_error,
debug => $ENV{DEBUG},
}
);
}
};
die $EVAL_ERROR
if $EVAL_ERROR;
return $s3;
}
########################################################################
sub create_bucket {
########################################################################
my ( $s3, $bucket_name ) = @_;
$bucket_name = $SLASH . $bucket_name;
my $bucket_obj
= eval { return $s3->add_bucket( { bucket => $bucket_name } ); };
return $bucket_obj;
}
########################################################################
sub add_keys {
########################################################################
my ( $bucket_obj, $max_keys, $prefix ) = @_;
$prefix //= q{};
foreach my $key ( 1 .. $max_keys ) {
my $keyname = sprintf '%stesting-%02d.txt', $prefix, $key;
my $value = 'T';
$bucket_obj->add_key( $keyname, $value );
}
return $max_keys;
}
1;
( run in 0.470 second using v1.01-cache-2.11-cpan-062aa07a564 )