NAME

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

VERSION

version v0.04.0.80

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;

# to store a new object with server-side encryption enabled
my $object = $bucket->object(
  key        => 'my secret',
  encryption => 'AES256',
);
$object->put('this data will be stored using encryption.');

# 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.

This module provides the same interface as Net::Amazon::S3::Client::Object. In addition, some asynchronous methods returning AnyEvent condition variable are added.

METHODS

All Net::Amazon::S3::Client::Bucket methods are available. In addition, there are the following asynchronous methods. Arguments of the methods are identical as original but return value becomes AnyEvent condition variable. You can get actual return value by calling shift->recv().

delete_async
exists_async
get_async
get_decoded_async
get_filename_async
put_async
put_filename_async
complete_multipart_upload_async
initiate_multipart_upload_async
abort_multipart_upload_async
put_part_async

AUTHOR

Yasutaka ATARASHI <yakex@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2012 by Yasutaka ATARASHI.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.