pull-mongo-files

2.0.0 • Public • Published

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
const {GridFSBucket, MongoClient} = require('mongodb')
const client = new MongoClient('mongodb://localhost:27017/myproject')
const files = require('pull-mongo-files')(GridFSBucket, client.db())

Examples

Write

const fs = require('node:fs')
const pull = require('pull-stream')
const toPull = require('stream-to-pull-stream')

pull(
	toPull.source(fs.createReadStream('my_image.jpg'), {
		name: 'image.jpg',
		type:
	}),
	files.write(ObjectId())
)

Read

const pull = require('pull-stream')
const 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

const uuid = require('mongo-uuid')

files.write(uuid())

Readme

Keywords

none

Package Sidebar

Install

npm i pull-mongo-files

Weekly Downloads

0

Version

2.0.0

License

MIT

Unpacked Size

7.31 kB

Total Files

5

Last publish

Collaborators

  • thomas-jensen