Amazon-S3
view release on metacpan or search on metacpan
shift @key_list;
shift @key_list;
######################################################################
# delete array of keys - next two keys
#####################################################################
$delete_rsp
= $bucket_obj->delete_keys( map { $_->{key} } @key_list[ ( 0, 1 ) ] );
ok( $delete_rsp, 'delete_keys() response' );
$response = $bucket_obj->list
or die $s3->err . ': ' . $s3->errstr;
is( scalar @{ $response->{keys} }, -2 + scalar(@key_list), 'delete array of keys' );
shift @key_list;
shift @key_list;
######################################################################
# callback - last two keys
######################################################################
$delete_rsp = $bucket_obj->delete_keys(
sub {
my $key = shift @key_list;
return ( $key->{key} );
}
);
ok( $delete_rsp, 'delete_keys() response' );
$response = $bucket_obj->list
or die $s3->err . ': ' . $s3->errstr;
is( scalar @{ $response->{keys} }, 0, 'delete keys from callback' )
or diag( Dumper( [ response => $response, key_list => \@key_list ] ) );
#
# delete multiple keys from bucket
######################################################################
}
SKIP: {
if ( $ENV{AMAZON_S3_KEEP_BUCKET} ) {
skip 'keeping bucket', 1;
}
ok( $bucket_obj->delete_bucket(), 'delete bucket' );
}
}
# see more docs in Amazon::S3::Bucket
# local test methods
########################################################################
sub is_request_response_code {
########################################################################
my ( $url, $code, $message ) = @_;
my $request = HTTP::Request->new( 'GET', $url );
my $response = $s3->ua->request($request);
is( $response->code, $code, $message )
or diag( Dumper( [ response_code => $response ] ) );
return;
}
########################################################################
sub like_acl_allusers_read {
########################################################################
my ( $bucket_obj, $keyname, $dump ) = @_;
my $message = acl_allusers_read_message( 'like', $bucket_obj, $keyname );
my $acl = $bucket_obj->get_acl($keyname);
diag( Dumper( [ acl => $acl ] ) )
if $dump;
like( $acl, qr/AllUsers.+READ/xsm, $message )
or diag( Dumper( [ acl => $acl ] ) );
return;
}
########################################################################
sub unlike_acl_allusers_read {
########################################################################
my ( $bucket_obj, $keyname ) = @_;
my $message = acl_allusers_read_message( 'unlike', $bucket_obj, $keyname );
my $acl = $bucket_obj->get_acl($keyname);
unlike( $bucket_obj->get_acl($keyname), qr/AllUsers.+READ/xsm, $message )
or diag( Dumper( [ acl => $acl ] ) );
return;
}
########################################################################
sub acl_allusers_read_message {
########################################################################
my ( $like_or_unlike, $bucket_obj, $keyname ) = @_;
my $message = sprintf '%s_acl_allusers_read: %s', $like_or_unlike, $bucket_obj->bucket;
if ($keyname) {
$message .= " - $keyname";
}
return $message;
}
########################################################################
sub acl_xml_from_acl_short {
########################################################################
my ($acl_short) = @_;
( run in 1.091 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )