AnyEvent-Net-Amazon-S3
view release on metacpan or search on metacpan
lib/AnyEvent/Net/Amazon/S3.pm view on Meta::CPAN
my $aws_access_key_id = 'fill me in';
my $aws_secret_access_key = 'fill me in too';
my $s3 = AnyEvent::Net::Amazon::S3->new(
{ aws_access_key_id => $aws_access_key_id,
aws_secret_access_key => $aws_secret_access_key,
retry => 1,
}
);
# a bucket is a globally-unique directory
# list all buckets that i own
my $response = $s3->buckets;
foreach my $bucket ( @{ $response->{buckets} } ) {
print "You have a bucket: " . $bucket->bucket . "\n";
}
# create a new bucket
my $bucketname = 'acmes_photo_backups';
my $bucket = $s3->add_bucket( { bucket => $bucketname } )
or die $s3->err . ": " . $s3->errstr;
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>
t/02client.t view on Meta::CPAN
my $bucket = $client->create_bucket(
name => $bucket_name,
acl_short => 'public-read',
location_constraint => 'US',
);
is( $bucket->name, $bucket_name, 'newly created bucket has correct name' );
like(
$bucket->acl,
qr{<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>[a-z0-9]{64}</ID><DisplayName>.+?</DisplayName></Owner><AccessControlList><Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Canonical...
'newly created bucket is public-readable'
);
is( $bucket->location_constraint, 'US', 'newly created bucket is in the US' );
my $stream = $bucket->list;
until ( $stream->is_done ) {
foreach my $object ( $stream->items ) {
$object->delete;
}
( run in 0.538 second using v1.01-cache-2.11-cpan-49f99fa48dc )