Mojo::Asset::File

简介

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内容的文件存储。

事件

Mojo::Asset::File继承了Mojo::Asset中的所有事件。

属性

Mojo::Asset::File继承了Mojo::Asset中的所有属性,并实现了以下属性。

cleanup

my $bool = $file->cleanup;
$file    = $file->cleanup($bool);

一旦文件不再被使用,就自动删除path所指定的文件。

handle

my $handle = $file->handle;
$file      = $file->handle(IO::File->new);

根据path属性创建的文件句柄,如果path属性未定义则会基于tmpdir属性安全地自动生成。

path

my $path = $file->path;
$file    = $file->path('/home/sri/foo.txt');

用于创建 handle属性的文件路径。

tmpdir

my $tmpdir = $file->tmpdir;
$file      = $file->tmpdir('/tmp');

用于生成path属性的临时目录,默认为MOJO_TMPDIR环境变量的值。

方法

Mojo::Asset::File继承了Mojo::Asset中的所有方法,并实现了以下方法。

add_chunk

$file = $file->add_chunk('foo bar baz');

添加一块数据到文件中。

contains

my $position = $file->contains('bar');

检查文件中是否包含特殊的字符串。如果包含,则返回第一次发现字符串的位置,如果不包含则返回-1。

get_chunk

my $bytes = $file->get_chunk($offset);
my $bytes = $file->get_chunk($offset, $max);

从特定位置获取数据块(单位为字节),默认获取的最大数据块为131072(128KiB)。

is_file

my $bool = $file->is_file;

因为这个类生成的对象总是Mojo::Asset::File对象,所以这个方法总是返回true。

move_to

$file = $file->move_to('/home/sri/bar.txt');

将当前对象中的数据存储到指定的文件中。并禁用cleanup。
返回的对象指向移动到的目标文件。

mtime

my $mtime = $file->mtime;

文件的最后一次修改时间。

size

my $size = $file->size;

文件的尺寸(单位是字节)。

slurp

my $bytes = $file->slurp;

一次性从文件中读出所有数据。

你可能感兴趣的:(Mojo::Asset::File)