---
name: "Mango::GridFS::Reader"
section: "3pm"
platform: "linux"
package: "libmango-perl"
version: "1.30-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Mango::GridFS::Reader"
---

# Mango::GridFS::Reader(3pm)

GridFS reader

## NAME

Mango::GridFS::Reader - GridFS reader

## SYNOPSIS

```
  use Mango::GridFS::Reader;
  my $reader = Mango::GridFS::Reader->new(gridfs => $gridfs);
```

## DESCRIPTION

Mango::GridFS::Reader reads files from GridFS.

## ATTRIBUTES

Mango::GridFS::Reader implements the following attributes.

### gridfs

```
  my $gridfs = $reader->gridfs;
  $reader    = $reader->gridfs(Mango::GridFS->new);
```

Mango::GridFS object this reader belongs to.

## METHODS

Mango::GridFS::Reader inherits all methods from Mojo::Base and implements the following new ones.

### chunk\_size

```
  my $size = $reader->chunk_size;
```

Chunk size in bytes.

### content\_type

```
  my $type = $reader->content_type;
```

Content type of file.

### filename

```
  my $name = $reader->filename;
```

Name of file.

### md5

```
  my $checksum = $reader->md5;
```

MD5 checksum for file.

### metadata

```
  my $data = $reader->metadata;
```

Additional information.

### open

```
  $reader = $reader->open($oid);
```

Open file. You can also append a callback to perform operation non-blocking.

```
  $reader->open($oid => sub {
    my ($reader, $err) = @_;
    ...
  });
  Mojo::IOLoop->start unless Mojo::IOLoop->is_running;
```

### read

```
  my $chunk = $reader->read;
```

Read chunk. You can also append a callback to perform operation non-blocking.

```
  $reader->read(sub {
    my ($reader, $err, $chunk) = @_;
    ...
  });
  Mojo::IOLoop->start unless Mojo::IOLoop->is_running;
```

### seek

```
  $reader = $reader->seek(13);
```

Change current position.

### size

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

Size of entire file in bytes.

### slurp

```
  my $data = $reader->slurp;
```

Slurp all remaining data from file. You can also append a callback to perform operation non-blocking.

```
  $reader->slurp(sub {
    my ($reader, $err, $data) = @_;
    ...
  });
  Mojo::IOLoop->start unless Mojo::IOLoop->is_running;
```

### tell

```
  my $pos = $reader->tell;
```

Current position.

### upload\_date

```
  my $time = $reader->upload_date;
```

Date file was uploaded.

## SEE ALSO

Mango, Mojolicious::Guides, \<http://mojolicio.us\>.
