AWS-S3
view release on metacpan or search on metacpan
lib/AWS/S3/Bucket.pm view on Meta::CPAN
my ( $s, $type, %args ) = @_;
my $req = $s->s3->request( $type, bucket => $s->name, %args );
my $response = $req->request();
return if $response->response->code == 404;
if ( my $msg = $response->friendly_error() ) {
die $msg;
} # end if()
return $response;
} # end _get_property()
__PACKAGE__->meta->make_immutable;
__END__
=pod
=head1 NAME
AWS::S3::Bucket - Object representation of S3 Buckets
=head1 SYNOPSIS
See L<The SYNOPSIS from AWS::S3|AWS::S3/SYNOPSIS> for usage details.
=head1 CONSTRUCTOR
Call C<new()> with the following parameters.
=head1 PUBLIC PROPERTIES
=head2 s3
Required. An L<AWS::S3> object.
Read-only.
=head2 name
Required. String.
The name of the bucket.
Read-only.
=head2 creation_date
String. Returned from the S3 service itself.
Read-only.
=head2 acl
String. Returns XML string.
Read-only.
See also L<PUT Bucket ACL|http://docs.amazonwebservices.com/AmazonS3/latest/API/index.html?RESTBucketPUTacl.html>
=head2 location_constraint
String. Read-only.
=over 4
=item * EU
=item * us-west-1
=item * us-west-2
=item * ap-southeast-1
=item * ap-northeast-1
=back
The default value is undef which means 'US'.
See also L<PUT Bucket|http://docs.amazonwebservices.com/AmazonS3/latest/API/index.html?RESTBucketPUT.html>
=head2 policy
Read-only. String of JSON.
Looks something like this:
{
"Version":"2008-10-17",
"Id":"aaaa-bbbb-cccc-dddd",
"Statement" : [
{
"Effect":"Deny",
"Sid":"1",
"Principal" : {
"AWS":["1-22-333-4444","3-55-678-9100"]
},
"Action":["s3:*"],
"Resource":"arn:aws:s3:::bucket/*",
}
]
}
See also L<GET Bucket Policy|http://docs.amazonwebservices.com/AmazonS3/latest/API/index.html?RESTBucketGETpolicy.html>
=head1 PUBLIC METHODS
=head2 files( page_size => $size, page_number => $number, [[marker => $marker,] pattern => qr/$pattern/ ] )
Returns a L<AWS::S3::FileIterator> object with the supplied arguments.
Use the L<AWS::S3::FileIterator> to page through your results.
=head2 file( $key )
Finds the file with that C<$key> and returns an L<AWS::S3::File> object for it.
=head2 delete_multi( \@keys )
Given an ArrayRef of the keys you want to delete, C<delete_multi> can only delete
up to 1000 keys at once. Empty your buckets for deletion quickly like this:
my $deleted = 0;
my $bucket = $s->bucket( 'foobar' );
my $iter = $bucket->files( page_size => 1000, page_number => 1 );
while( my @files = $iter->next_page )
{
$bucket->delete_multi( map { $_->key } @files );
$deleted += @files;
# Reset to page 1:
$iter->page_number( 1 );
warn "Deleted $deleted files so far\n";
}# end while()
# NOW you can delete your bucket (if you want) because it's empty:
$bucket->delete;
=head1 SEE ALSO
L<The Amazon S3 API Documentation|http://docs.amazonwebservices.com/AmazonS3/latest/API/>
( run in 0.597 second using v1.01-cache-2.11-cpan-13bb782fe5a )