---
name: "Mojo::Asset"
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"
---

# Mojo::Asset(3pm)

HTTP content storage base class

## NAME

Mojo::Asset - HTTP content storage base class

## SYNOPSIS

```
  package Mojo::Asset::MyAsset;
  use Mojo::Base 'Mojo::Asset';
  sub add_chunk {...}
  sub contains  {...}
  sub get_chunk {...}
  sub move_to   {...}
  sub mtime     {...}
  sub size      {...}
  sub slurp     {...}
  sub to_file   {...}
```

## DESCRIPTION

Mojo::Asset is an abstract base class for HTTP content storage backends, like Mojo::Asset::File and Mojo::Asset::Memory.

## EVENTS

Mojo::Asset inherits all events from Mojo::EventEmitter.

## ATTRIBUTES

Mojo::Asset implements the following attributes.

### end\_range

```
  my $end = $asset->end_range;
  $asset  = $asset->end_range(8);
```

Pretend file ends earlier.

### start\_range

```
  my $start = $asset->start_range;
  $asset    = $asset->start_range(3);
```

Pretend file starts later.

## METHODS

Mojo::Asset inherits all methods from Mojo::EventEmitter and implements the following new ones.

### add\_chunk

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

Add chunk of data to asset. Meant to be overloaded in a subclass.

### contains

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

Check if asset contains a specific string. Meant to be overloaded in a subclass.

### get\_chunk

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

Get chunk of data starting from a specific position, defaults to a maximum chunk size of `131072` bytes (128KiB). Meant to be overloaded in a subclass.

### is\_file

```
  my $bool = $asset->is_file;
```

False, this is not a Mojo::Asset::File object.

### is\_range

```
  my $bool = $asset->is_range;
```

Check if asset has a "start\_range" or "end\_range".

### move\_to

```
  $asset = $asset->move_to('/home/sri/foo.txt');
```

Move asset data into a specific file. Meant to be overloaded in a subclass.

### mtime

```
  my $mtime = $asset->mtime;
```

Modification time of asset. Meant to be overloaded in a subclass.

### size

```
  my $size = $asset->size;
```

Size of asset data in bytes. Meant to be overloaded in a subclass.

### slurp

```
  my $bytes = $asset->slurp;
```

Read all asset data at once. Meant to be overloaded in a subclass.

### to\_file

```
  my $file = $asset->to_file;
```

Convert asset to Mojo::Asset::File object. Meant to be overloaded in a subclass.

## SEE ALSO

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