Mojo::Asset::File

作者: JSON_NULL | 来源:发表于2017-09-30 13:08 被阅读1次

    简介

    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

        本文链接:https://www.haomeiwen.com/subject/ldmgextx.html