NAME

AWS::S3 - Lightweight interface to Amazon S3 (Simple Storage Service)

SYNOPSIS

use AWS::S3;

my $s3 = AWS::S3->new(
  access_key_id     => 'E654SAKIASDD64ERAF0O',
  secret_access_key => 'LgTZ25nCD+9LiCV6ujofudY1D6e2vfK0R4GLsI4H',
);

# Add a bucket:
my $bucket = $s3->add_bucket(
  name    => 'foo-bucket',
);

# Set the acl:
$bucket->acl( 'private' );

# Add a file:
my $new_file = $bucket->add_file(
  key       => 'foo/bar.txt',
  contents  => \'This is the contents of the file',
);

# Get the file:
my $same_file = $bucket->file( 'foo/bar.txt' );

# Get the contents:
my $scalar_ref = $same_file->contents;
print $$scalar_ref;

# Update the contents:
$same_file->contents( \"New file contents" );

# Delete the file:
$same_file->delete();

# Iterate through lots of files:
my $iterator = $bucket->files(
  page_size   => 100,
  page_number => 1,
);
while( my @files = $iterator->next_page )
{
  warn "Page number: ", $iterator->page_number, "\n";
  foreach my $file ( @files )
  {
    warn "\tFilename (key): ", $file->key, "\n";
    warn "\tSize: ", $file->size, "\n";
    warn "\tETag: ", $file->etag, "\n";
    warn "\tContents: ", ${ $file->contents }, "\n";
  }# end foreach()
}# end while()

# You can't delete a bucket until it's empty.
# Empty a bucket like this:
while( my @files = $iterator->next_page )
{
  map { $_->delete } @files;
  
  # Return to page 1:
  $iterator->page_number( 1 );
}# end while()

# Now you can delete the bucket:
$bucket->delete();

DESCRIPTION

AWS::S3 attempts to provide an alternate interface to the Amazon S3 Simple Storage Service.

NOTE: Until AWS::S3 gets to version 1.000 it will not implement the full S3 interface.

Disclaimer: Several portions of AWS::S3 have been adopted from Net::Amazon::S3.

NOTE: AWS::S3 is NOT a drop-in replacement for Net::Amazon::S3.

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.