NAME

AWS::S3::File - A single file in Amazon S3

SYNOPSIS

my $file = $bucket->file('foo/bar.txt');

# contents is a scalarref:
print @{ $file->contents };
print $file->size;
print $file->key;
print $file->etag;
print $file->lastmodified;

print $file->owner->display_name;

print $file->bucket->name;

# Set the contents with a scalarref:
my $new_contents = "This is the new contents of the file.";
$file->contents( \$new_contents );

# Set the contents with a coderef:
$file->contents( sub {
  return \$new_contents;
});

# Alternative update
$file->update( 
  contents => \'New contents', # optional
  contenttype => 'text/plain'  # optional
);

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

DESCRIPTION

AWS::S3::File provides a convenience wrapper for dealing with files stored in S3.

PUBLIC PROPERTIES

bucket

AWS::S3::Bucket - read-only.

The AWS::S3::Bucket that contains the file.

key

String - read-only.

The 'filename' (for all intents and purposes) of the file.

size

Integer - read-only.

The size in bytes of the file.

etag

String - read-only.

The Amazon S3 'ETag' header for the file.

owner

ASW::S3::Owner - read-only.

The ASW::S3::Owner that the file belongs to.

storageclass

String - read-only.

The type of storage used by the file.

lastmodified

String - read-only.

A date in this format:

2009-10-28T22:32:00

contents

ScalarRef|CodeRef - read-write.

Returns a scalar-reference of the file's contents.

Accepts either a scalar-ref or a code-ref (which would return a scalar-ref).

Once given a new value, the file is instantly updated on Amazon S3.

# GOOD: (uses scalarrefs)
my $value = "A string";
$file->contents( \$value );
$file->contents( sub { return \$value } );

# BAD: (not scalarrefs)
$file->contents( $value );
$file->contents( sub { return $value } );

PUBLIC METHODS

delete()

Deletes the file from Amazon S3.

update()

Update contents and/or contenttype of the file.

SEE ALSO

The Amazon S3 API Documentation

AWS::S3

AWS::S3::Bucket

AWS::S3::FileIterator

AWS::S3::Owner

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.