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