The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Net::Amazon::S3::Client::Object - An easy-to-use Amazon S3 client object

SYNOPSIS

# show the key
print $object->key . "\n";

# show the etag of an existing object (if fetched by listing
# a bucket)
print $object->etag . "\n";

# show the size of an existing object (if fetched by listing
# a bucket)
print $object->size . "\n";

# to create a new object
my $object = $bucket->object( key => 'this is the key' );
$object->put('this is the value');

# to get the vaue of an object
my $value = $object->get;

# to see if an object exists
if ($object->exists) { ... }

# to delete an object
$object->delete;

# to create a new object which is publically-accessible with a
# content-type of text/plain which expires on 2010-01-02
my $object = $bucket->object(
  key          => 'this is the public key',
  acl_short    => 'public-read',
  content_type => 'text/plain',
  expires      => '2010-01-02',
);
$object->put('this is the public value');

# return the URI of a publically-accessible object
my $uri = $object->uri;

# upload a file
my $object = $bucket->object(
  key          => 'images/my_hat.jpg',
  content_type => 'image/jpeg', 
);
$object->put_filename('hat.jpg');

# upload a file if you already know its md5_hex and size
my $object = $bucket->object(
  key          => 'images/my_hat.jpg',
  content_type => 'image/jpeg',
  etag         => $md5_hex,
  size         => $size,
);
$object->put_filename('hat.jpg');

# download the value of the object into a file
my $object = $bucket->object( key => 'images/my_hat.jpg' );
$object->get_filename('hat_backup.jpg');

# use query string authentication
my $object = $bucket->object(
  key          => 'images/my_hat.jpg',
  expires      => '2009-03-01',
);
my $uri = $object->query_string_authentication_uri();

DESCRIPTION

This module represents objects in buckets.

METHODS

etag

# show the etag of an existing object (if fetched by listing
# a bucket)
print $object->etag . "\n";

delete

# to delete an object
$object->delete;

exists

# to see if an object exists
if ($object->exists) { ... }

get

# to get the vaue of an object
my $value = $object->get;

get_filename

# download the value of the object into a file
my $object = $bucket->object( key => 'images/my_hat.jpg' );
$object->get_filename('hat_backup.jpg');

key

# show the key
print $object->key . "\n";

put

# to create a new object
my $object = $bucket->object( key => 'this is the key' );
$object->put('this is the value');

# to create a new object which is publically-accessible with a
# content-type of text/plain
my $object = $bucket->object(
  key          => 'this is the public key',
  acl_short    => 'public-read',
  content_type => 'text/plain',
);
$object->put('this is the public value');

You may also set Content-Encoding using content_encoding.

put_filename

# upload a file
my $object = $bucket->object(
  key          => 'images/my_hat.jpg',
  content_type => 'image/jpeg', 
);
$object->put_filename('hat.jpg');

# upload a file if you already know its md5_hex and size
my $object = $bucket->object(
  key          => 'images/my_hat.jpg',
  content_type => 'image/jpeg',
  etag         => $md5_hex,
  size         => $size,
);
$object->put_filename('hat.jpg');

You may also set Content-Encoding using content_encoding.

query_string_authentication_uri

# use query string authentication
my $object = $bucket->object(
  key          => 'images/my_hat.jpg',
  expires      => '2009-03-01',
);
my $uri = $object->query_string_authentication_uri();

size

# show the size of an existing object (if fetched by listing
# a bucket)
print $object->size . "\n";

uri

# return the URI of a publically-accessible object
my $uri = $object->uri;