AnyEvent-Net-Amazon-S3
view release on metacpan or search on metacpan
lib/AnyEvent/Net/Amazon/S3/Bucket.pm view on Meta::CPAN
# ABSTRACT: convenience object for working with Amazon S3 buckets
our $VERSION = 'v0.04.0.80'; # VERSION
use strict;
use warnings;
# TODO: _content_sub might become more async manner?
use Module::AnyEvent::Helper::Filter -as => __PACKAGE__, -target => 'Net::Amazon::S3::Bucket',
-transformer => 'Net::Amazon::S3',
-translate_func => [qw(add_key add_key_filename copy_key edit_metadata head_key get_key get_key_filename delete_key delete_bucket list list_all get_acl set_acl get_location_constraint)],
-replace_func => [qw(_send_request_expect_nothing_probed list_bucket list_bucket_all _do_http _send_request_expect_nothing _send_request)]
;
1;
__END__
=pod
=encoding UTF-8
lib/AnyEvent/Net/Amazon/S3/Bucket.pm view on Meta::CPAN
You can get actual return value by calling C<shift-E<gt>recv()>.
=over 4
=item add_key_async
=item add_key_filename_async
=item copy_key_async
=item edit_metadata_async
=item head_key_async
=item get_key_async
=item get_key_filename_async
=item delete_key_async
=item delete_bucket_async
# Overwrite, making publically readable
$bucket_obj->copy_key( $keyname2, "/$bucketname/$keyname",
{ acl_short => 'public-read' } );
sleep 1;
is_request_response_code(
"http://$bucketname.s3.amazonaws.com/$keyname2",
200, "can access the publicly readable key" );
# Now copy it over itself, making it private
$bucket_obj->edit_metadata( $keyname2, { short_acl => 'private' } );
is_request_response_code(
"http://$bucketname.s3.amazonaws.com/$keyname2",
403, "cannot access the private key" );
# Get rid of it, bringing us back to only one key
$bucket_obj->delete_key($keyname2);
# Expect a nonexistent key copy to fail
ok( !$bucket_obj->copy_key( "newkey", "/$bucketname/$keyname2" ),
( run in 0.431 second using v1.01-cache-2.11-cpan-de7293f3b23 )