---
name: "Mojo::Asset::File"
section: "3pm"
platform: "linux"
package: "libmojolicious-perl"
version: "9.39+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Mojo::Asset::File"
---

# Mojo::Asset::File(3pm)

File storage for HTTP content

## 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.

## SEE ALSO

Mojolicious, Mojolicious::Guides, \<https://mojolicious.org\>.
