level-blobs
Save binary blobs in level and stream then back.
Similar to level-store but streams2 and with support for random access writes and reads
npm install level-blobs
Usage
var blobs = require('level-blobs');
var level = require('level');
var db = level('/tmp/my-blobs-db');
var bl = blobs(db);
// create a write stream
var ws = blobs.createWriteStream('my-file.txt');
ws.on('finish', function() {
// lets read the blob and pipe it to stdout
var rs = blobs.createReadStream('my-file.txt');
rs.pipe(process.stdout);
});
ws.write('hello ');
ws.write('world');
ws.end();
API
blobs(db, opts)
Create a new blobs instance. Options default to
{
blockSize: 65536, // byte size for each block of data stored
batch: 100 // batch at max 100 blocks when writing
}
bl.createReadStream(name, opts)
Create a read stream for name
. Options default to
{
start: 0 // start reading from this byte offset
end: Infinity // end at end-of-file or this offset (inclusive)
}
bl.createWriteStream(name, opts)
Create a write stream to name
. Options default to
{
start: 0 // start writing at this offset
// if append === true start defaults to end-of-file
append: false // set to true if you want to append to the file
// if not true the file will be truncated before writing
}
bl.read(name, opts, cb)
Create a read stream and buffer the stream into a single buffer that is passed to the callback.
Options are passed to createReadStream
.
bl.write(name, data, opts, cb)
Write data
to name
and call the callback when done.
Options are passed to createWriteStream
.
bl.remove(name, cb)
Remove name
from the blob store
License
MIT