NAME

EV::Nats::ObjectStore - Object store API for NATS JetStream

SYNOPSIS

use EV::Nats;
use EV::Nats::JetStream;
use EV::Nats::ObjectStore;

my $nats = EV::Nats->new(host => '127.0.0.1');
my $js = EV::Nats::JetStream->new(nats => $nats);
my $os = EV::Nats::ObjectStore->new(js => $js, bucket => 'files');

$os->create_bucket({}, sub { ... });

# Store object (automatically chunked)
$os->put('report.pdf', $pdf_data, sub {
    my ($info, $err) = @_;
    print "stored: $info->{size} bytes in $info->{chunks} chunks\n";
});

# Retrieve
$os->get('report.pdf', sub {
    my ($data, $err, $meta) = @_;
    print "got $meta->{size} bytes\n";
});

METHODS

new(js => $js, bucket => $name, [chunk_size => $bytes])

Default chunk size: 128KB.

create_bucket(\%opts, $cb)

delete_bucket($cb)

put($name, $data, $cb)

get($name, $cb)

Callback: ($data, $err, $meta).

delete($name, [$cb])

info($name, $cb)

list($cb)

status($cb)