METHODS
new
Create a new bucket object. Expects a hash containing these two arguments:
- bucket
- account
add_key
Takes three positional parameters:
- key
- value
- configuration
-
A hash of configuration data for this key. (See synopsis);
Returns a boolean.
head_key KEY
Takes the name of a key in this bucket and returns its configuration hash
get_key $key_name [$method]
Takes a key name and an optional HTTP method (which defaults to GET
. Fetches the key from AWS.
On failure:
Returns undef on missing content, throws an exception (dies) on server errors.
On success:
Returns a hashref of { content_type, etag, value, @meta } on success
delete_key $key_name
Removes $key
from the bucket. Forever. It's gone after this.
Returns true on success and false on failure
delete_bucket
Delete the current bucket object from the server. Takes no arguments.
Fails if the bucket has anything in it.
This is an alias for $s3-
delete_bucket($bucket)>
list
List all keys in this bucket.
see "list_bucket" in Net::Amazon::S3 for documentation of this method.
list_all
List all keys in this bucket without having to worry about 'marker'. This may make multiple requests to S3 under the hood.
see "list_bucket_all" in Net::Amazon::S3 for documentation of this method.
err
The S3 error code for the last error the object ran into
errstr
A human readable error string for the last error the object ran into
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.