pull-mongo-files
Read and write files from MongoDb's GridFS using pull-streams.
files.write(id[, meta]) -> SinkStream() -> Promise()
files.read(id) -> SourceStream()
files.stat(id) -> Promise({ id, meta })
files.exists(id) -> Promise(Boolean)
Setup
npm install pull-mongo-files
var mongodb = require('mongodb');
var db = mongodb.connect('mongodb://localhost/test');
var files = require('pull-mongo-files')(mongodb, db);
Examples
Write
var fs = require('fs');
var pull = require('pull-stream');
var toPull = require('stream-to-pull-stream');
pull(
toPull.source(fs.createReadStream('my_image.jpg'), {
name: 'image.jpg',
type:
}),
files.write(mongodb.ObjectId())
)
Read
var pull = require('pull-stream');
var toPull = require('stream-to-pull-stream');
pull(
files.read(id),
toPull.sink(res)
);
Meta data
Use write
to write any meta data and stat
to read it.
If you provide the keys name
and type
they are duplicated onto the file
document's root level as filename
and contentType
as those have special
status in other MongoDb GridFS implementations.
Using UUIDs
var uuid = require('mongo-uuid');
files.write(uuid());