簡介
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;
Mojo::Asset::File 是HTTP內(nèi)容的文件存儲斋射。
事件
Mojo::Asset::File繼承了Mojo::Asset中的所有事件咒吐。
屬性
Mojo::Asset::File繼承了Mojo::Asset中的所有屬性,并實現(xiàn)了以下屬性娜谊。
cleanup
my $bool = $file->cleanup;
$file = $file->cleanup($bool);
一旦文件不再被使用确买,就自動刪除path所指定的文件。
handle
my $handle = $file->handle;
$file = $file->handle(IO::File->new);
根據(jù)path屬性創(chuàng)建的文件句柄纱皆,如果path屬性未定義則會基于tmpdir屬性安全地自動生成湾趾。
path
my $path = $file->path;
$file = $file->path('/home/sri/foo.txt');
用于創(chuàng)建 handle屬性的文件路徑芭商。
tmpdir
my $tmpdir = $file->tmpdir;
$file = $file->tmpdir('/tmp');
用于生成path屬性的臨時目錄,默認為MOJO_TMPDIR環(huán)境變量的值搀缠。
方法
Mojo::Asset::File繼承了Mojo::Asset中的所有方法铛楣,并實現(xiàn)了以下方法。
add_chunk
$file = $file->add_chunk('foo bar baz');
添加一塊數(shù)據(jù)到文件中艺普。
contains
my $position = $file->contains('bar');
檢查文件中是否包含特殊的字符串簸州。如果包含,則返回第一次發(fā)現(xiàn)字符串的位置歧譬,如果不包含則返回-1勿侯。
get_chunk
my $bytes = $file->get_chunk($offset);
my $bytes = $file->get_chunk($offset, $max);
從特定位置獲取數(shù)據(jù)塊(單位為字節(jié)),默認獲取的最大數(shù)據(jù)塊為131072(128KiB)缴罗。
is_file
my $bool = $file->is_file;
因為這個類生成的對象總是Mojo::Asset::File對象助琐,所以這個方法總是返回true。
move_to
$file = $file->move_to('/home/sri/bar.txt');
將當前對象中的數(shù)據(jù)存儲到指定的文件中面氓。并禁用cleanup兵钮。
返回的對象指向移動到的目標文件。
mtime
my $mtime = $file->mtime;
文件的最后一次修改時間舌界。
size
my $size = $file->size;
文件的尺寸(單位是字節(jié))掘譬。
slurp
my $bytes = $file->slurp;
一次性從文件中讀出所有數(shù)據(jù)。