The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

AWS::S3::Bucket - Object representation of S3 Buckets

SYNOPSIS

See The SYNOPSIS from AWS::S3 for usage details.

CONSTRUCTOR

Call new() with the following parameters.

PUBLIC PROPERTIES

s3

Required. An AWS::S3 object.

Read-only.

name

Required. String.

The name of the bucket.

Read-only.

creation_date

String. Returned from the S3 service itself.

Read-only.

acl

String. Returns XML string.

Read-only.

See also PUT Bucket ACL

location_constraint

String. Read-only.

  • EU

  • us-west-1

  • us-west-2

  • ap-southeast-1

  • ap-northeast-1

The default value is undef which means 'US'.

See also PUT Bucket

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 GET Bucket Policy

PUBLIC METHODS

files( page_size => $size, page_number => $number, [[marker => $marker,] pattern => qr/$pattern/ ] )

Returns a AWS::S3::FileIterator object with the supplied arguments.

Use the AWS::S3::FileIterator to page through your results.

file( $key )

Finds the file with that $key and returns an AWS::S3::File object for it.

delete_multi( \@keys )

Given an ArrayRef of the keys you want to delete, 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;

SEE ALSO

The Amazon S3 API Documentation

AWS::S3::Bucket

AWS::S3::File

AWS::S3::FileIterator

AWS::S3::Owner

AUTHOR

John Drago <jdrago_999@yahoo.com>

LICENSE AND COPYRIGHT

This software is Free software and may be used and redistributed under the same terms as any version of perl itself.

Copyright John Drago 2011 all rights reserved.