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

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

In-memory storage for HTTP content

## NAME

Mojo::Asset::Memory - In-memory storage for HTTP content

## SYNOPSIS

```
  use Mojo::Asset::Memory;
  my $mem = Mojo::Asset::Memory->new;
  $mem->add_chunk('foo bar baz');
  say $mem->slurp;
```

## DESCRIPTION

Mojo::Asset::Memory is an in-memory storage backend for HTTP content.

## EVENTS

Mojo::Asset::Memory inherits all events from Mojo::Asset and can emit the following new ones.

### upgrade

```
  $mem->on(upgrade => sub ($mem, $file) {...});
```

Emitted when asset gets upgraded to a Mojo::Asset::File object.

```
  $mem->on(upgrade => sub ($mem, $file) { $file->tmpdir('/tmp') });
```

## ATTRIBUTES

Mojo::Asset::Memory inherits all attributes from Mojo::Asset and implements the following new ones.

### auto\_upgrade

```
  my $bool = $mem->auto_upgrade;
  $mem     = $mem->auto_upgrade($bool);
```

Try to detect if content size exceeds "max\_memory\_size" limit and automatically upgrade to a Mojo::Asset::File object.

### max\_memory\_size

```
  my $size = $mem->max_memory_size;
  $mem     = $mem->max_memory_size(1024);
```

Maximum size in bytes of data to keep in memory before automatically upgrading to a Mojo::Asset::File object, defaults to the value of the `"MOJO_MAX_MEMORY_SIZE"` environment variable or `262144` (256KiB).

### mtime

```
  my $mtime = $mem->mtime;
  $mem      = $mem->mtime(1408567500);
```

Modification time of asset, defaults to the value of `$^T`.

## METHODS

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

### add\_chunk

```
  $mem     = $mem->add_chunk('foo bar baz');
  my $file = $mem->add_chunk('abc' x 262144);
```

Add chunk of data and upgrade to Mojo::Asset::File object if necessary.

### contains

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

Check if asset contains a specific string.

### get\_chunk

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

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

### move\_to

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

Move asset data into a specific file.

### size

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

Size of asset data in bytes.

### slurp

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

Read all asset data at once.

### to\_file

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

Convert asset to Mojo::Asset::File object.

## SEE ALSO

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