level-stream
Persist streams in LevelDB.
Usage
Store a file in LevelDB under the key file
and read it out again:
var levelup = ;var fs = ; var db = ;var streams = db; fs ;
Resuming
When reading fails you might not want to start over again completely but rather resume
after the last chunk you received. First, pass ts : true
as an option so you don't only
get the stored chunks but also when they were written:
streams;// => { ts : 1363783762087, data : <Buffer aa aa> }
Now you only need store the timestamp of the last read chunk in a variable and you can
resume reading after an error, passing { since : ts }
:
streams;// => { ts : 1363783876109, data : <Buffer bb bb> }
API
stream(db)
Returns a level-stream
instance.
stream#createReadStream(key[, opts])
A readable stream that replays the stream stored at key
.
Possible options
are:
ts (Boolean)
: Iftrue
, don't emit raw chunks but rather objects havingts
anddata
fields.since (Number)
: When reading, only read data that has been stored after that date. Automatically setsts
totrue
.live (Boolen)
: Iftrue
, the stream will stay open, emitting new data as it comes in.
stream#createWriteStream(key[, opts])
A writable stream that persists data written to it under key
. If something exists under key
already it will be deleted.
Possible options
are:
append (Boolean)
: Iftrue
, possibly already existing data stored underkey
will be appended rather than replaced.
TODO
- option to replace data instead of only appending
Installation
With npm do
$ npm install level-stream
License
(MIT)