NAME
Mojo::Asset::File - File storage for HTTP content
SYNOPSIS
use
Mojo::Asset::File;
# Temporary file
my
$file
= Mojo::Asset::File->new;
$file
->add_chunk(
'foo bar baz'
);
say
'File contains "bar"'
if
$file
->contains(
'bar'
) >= 0;
say
$file
->slurp;
# Existing file
my
$file
= Mojo::Asset::File->new(
path
=>
'/home/sri/foo.txt'
);
$file
->move_to(
'/yada.txt'
);
say
$file
->slurp;
DESCRIPTION
Mojo::Asset::File is a file storage backend for HTTP content.
EVENTS
Mojo::Asset::File inherits all events from Mojo::Asset.
ATTRIBUTES
Mojo::Asset::File inherits all attributes from Mojo::Asset and implements the following new ones.
cleanup
my
$bool
=
$file
->cleanup;
$file
=
$file
->cleanup(
$bool
);
Delete "path" automatically once the file is not used anymore.
handle
my
$handle
=
$file
->handle;
$file
=
$file
->handle(IO::File->new);
Filehandle, created on demand for "path", which can be generated automatically and safely based on "tmpdir".
path
my
$path
=
$file
->path;
$file
=
$file
->path(
'/home/sri/foo.txt'
);
File path used to create "handle".
tmpdir
my
$tmpdir
=
$file
->tmpdir;
$file
=
$file
->tmpdir(
'/tmp'
);
Temporary directory used to generate "path", defaults to the value of the MOJO_TMPDIR
environment variable or auto-detection.
METHODS
Mojo::Asset::File inherits all methods from Mojo::Asset and implements the following new ones.
add_chunk
$file
=
$file
->add_chunk(
'foo bar baz'
);
Add chunk of data.
contains
my
$position
=
$file
->contains(
'bar'
);
Check if asset contains a specific string.
get_chunk
my
$bytes
=
$file
->get_chunk(
$offset
);
my
$bytes
=
$file
->get_chunk(
$offset
,
$max
);
Get chunk of data starting from a specific position, defaults to a maximum chunk size of 131072
bytes (128KiB).
is_file
my
$bool
=
$file
->is_file;
True, this is a Mojo::Asset::File object.
move_to
$file
=
$file
->move_to(
'/home/sri/bar.txt'
);
Move asset data into a specific file and disable "cleanup".
mtime
my
$mtime
=
$file
->mtime;
Modification time of asset.
new
my
$file
= Mojo::Asset::File->new;
my
$file
= Mojo::Asset::File->new(
path
=>
'/home/sri/test.txt'
);
my
$file
= Mojo::Asset::File->new({
path
=>
'/home/sri/test.txt'
});
Construct a new Mojo::Asset::File object.
size
my
$size
=
$file
->size;
Size of asset data in bytes.
slurp
my
$bytes
=
$file
->slurp;
Read all asset data at once.
to_file
$file
=
$file
->to_file;
Does nothing but return the invocant, since we already have a Mojo::Asset::File object.