NAME

Net::Amazon::S3::Bucket - convenience object for working with Amazon S3 buckets

SYNOPSIS

 use Net::Amazon::S3;

 my $bucket = $s3->bucket("foo");

 ok($bucket->add_key("key", "data"));
 ok($bucket->add_key("key", "data", {
    content_type => "text/html",
   'x-amz-meta-colour' => 'orange',
 });

 # the err and errstr methods just proxy up to the Net::Amazon::S3's
 # objects err/errstr methods.
 $bucket->add_key("bar", "baz") or
     die $bucket->err . $bucket->errstr;

 # fetch a key
 $val = $bucket->get_key("key");
 is( $val->{value},               'data' );
 is( $val->{content_type},        'text/html' );
 is( $val->{etag},                'b9ece18c950afbfa6b0fdbfa4ff731d3' );
 is( $val->{'x-amz-meta-colour'}, 'orange' );

 # returns undef on missing or on error (check $bucket->err)
 is(undef, $bucket->get_key("non-existing-key"));
 die $bucket->errstr if $bucket->err;

 # fetch a key's metadata
 $val = $bucket->head_key("key");
 is( $val->{value},               '' );
 is( $val->{content_type},        'text/html' );
 is( $val->{etag},                'b9ece18c950afbfa6b0fdbfa4ff731d3' );
 is( $val->{'x-amz-meta-colour'}, 'orange' );

 # delete a key
 ok($bucket->delete_key($key_name));
 ok(! $bucket->delete_key("non-exist-key"));

 # delete the entire bucket (Amazon requires it first be empty)
 $bucket->delete_bucket;

DESCRIPTION

This module represents an S3 bucket. You get a bucket object from the Net::Amazon::S3 object.

SEE ALSO

Net::Amazon::S3