Skip to content
This repository has been archived by the owner on Apr 2, 2020. It is now read-only.

dotstudio-io/fi-gridfs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


No longer maintained.


Fi GridFS

Convenience layer for Mongo's GridFS on Node.js applications

This module uses Aaron Heckmann's gridfs-stream module to stream data into GridFS.

Installing

npm install --save fi-gridfs

Usage

var gridfs = require('fi-gridfs');

Initialization

You must initialize it with your current Mongo instance and db connection before using it:

gridfs.init(db, mongo);

If you're using mongoose, just pass mongoose.connection.db and mongoose.mongo:

var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/your-db-name', options);

mongoose.connection.on('error', function (err) {
  throw err;
});

mongoose.connection.once('open', function () {
  gridfs.init(mongoose.connection.db, mongoose.mongo);
});

Writing a file

You can write from a path String pointing to a file, a Stream.Readable object created from the fs module or a Buffer.

You can define your source as a String:

var source = '/path/to/the/file.ext';

As a Stream.Readable:

var source = fs.createReadStream('/path/to/the/file.ext');

Or as a Buffer:

var source = new Buffer('important buffer data here');

And then save it to GridFS with:

gridfs.write(source, function (err, fsfile) {
  if (err) {
    throw err;
  }

  /* Do whatever you want with your fsfile */
  console.log("The file %s named %d has a length of %d", fsfile._id, fsfile.filename, fsfile.length);
});

A common fsfile Object should look like this:

{
  _id: ObjectId,
  filename: String,
  contentType: String,
  length: Number,
  chunkSize: Number,
  uploadDate: Date,
  aliases: Object,
  metadata: Object,
  md5: String
}

Reading a file

To read a file you must provide a String than can be either a valid ObjectId or a file name.

So, you can define your file as an ObjectId:

var file = '55a52e49a562f0bb2627f38e';

Or as a file name:

var file = 'secret_document.docx';

And then get access to the file with:

gridfs.read(file, function (err, fsfile, rs) {
  if (err) {
    throw err;
  }

  /* Now you have your fsfile object and a nice read stream */
});

The rs parameter is a Stream.Readable object that can be piped, written or anything that Stream.Readable's can do.

Removing a file

To remove a file you must provide a String than can be either a valid ObjectId or a file name.

You can remove the file via it's ObjectId:

var file = '55a52e49a562f0bb2627f38e';

Or it's file name:

var file = 'secret_document.docx';

And then remove the file with:

gridfs.remove(file, function (err) {
  if (err) {
    throw err;
  }

  /* File has been removed */
});

About

Convenience layer for Mongo's GridFS on Node.js applications

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published