AnyEvent-Net-Amazon-S3
view release on metacpan or search on metacpan
is( $response->{content_type}, 'binary/octet-stream' );
is( $response->{content_length}, 0 );
$bucket_obj->delete_key($keyname);
unlink 't/empty';
# fetch contents of the bucket
# note prefix, marker, max_keys options can be passed in
$response = $bucket_obj->list
or die $s3->err . ": " . $s3->errstr;
is( $response->{bucket}, $bucketname );
is( $response->{prefix}, '' );
is( $response->{marker}, '' );
is( $response->{max_keys}, 1_000 );
is( $response->{is_truncated}, 0 );
is_deeply( $response->{keys}, [] );
ok( $bucket_obj->delete_bucket() );
}
# see more docs in AnyEvent::Net::Amazon::S3::Bucket
# local test methods
sub is_request_response_code {
my ( $url, $code, $message ) = @_;
my $request = HTTP::Request->new( 'GET', $url );
#warn $request->as_string();
my $response = $s3->ua->request($request);
is( $response->code, $code, $message );
}
sub like_acl_allusers_read {
my ( $bucketobj, $keyname ) = @_;
my $message = acl_allusers_read_message( 'like', @_ );
like( $bucketobj->get_acl($keyname), qr(AllUsers.+READ), $message );
}
sub unlike_acl_allusers_read {
my ( $bucketobj, $keyname ) = @_;
my $message = acl_allusers_read_message( 'unlike', @_ );
unlike( $bucketobj->get_acl($keyname), qr(AllUsers.+READ), $message );
}
sub acl_allusers_read_message {
my ( $like_or_unlike, $bucketobj, $keyname ) = @_;
my $message
= $like_or_unlike . "_acl_allusers_read: " . $bucketobj->bucket;
$message .= " - $keyname" if $keyname;
return $message;
}
sub acl_xml_from_acl_short {
my $acl_short = shift || 'private';
my $public_read = '';
if ( $acl_short eq 'public-read' ) {
$public_read = qq~
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="Group">
<URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
</Grantee>
<Permission>READ</Permission>
</Grant>
~;
}
return qq~<?xml version="1.0" encoding="UTF-8"?>
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>$OWNER_ID</ID>
<DisplayName>$OWNER_DISPLAYNAME</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="CanonicalUser">
<ID>$OWNER_ID</ID>
<DisplayName>$OWNER_DISPLAYNAME</DisplayName>
</Grantee>
<Permission>FULL_CONTROL</Permission>
</Grant>
$public_read
</AccessControlList>
</AccessControlPolicy>~;
}
( run in 0.738 second using v1.01-cache-2.11-cpan-39bf76dae61 )