NAME
AWS::S3::File - A single file in Amazon S3
SYNOPSIS
my
$file
=
$bucket
->file(
'foo/bar.txt'
);
# contents is a scalarref:
@{
$file
->contents };
$file
->size;
$file
->key;
$file
->etag;
$file
->lastmodified;
$file
->owner->display_name;
$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
);
# Get signed URL for the file for public access
$file
->signed_url(
$expiry_time
);
# 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.
storage_class
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.
signed_url( $expiry_time )
Will return a signed URL for public access to the file. $expiry_time should be a Unix seconds since epoch, and will default to now + 1 hour is not passed.
Note that the Signature parameter value will be URI encoded to prevent reserved characters (+, =, etc) causing a bad request.