You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

6.8 KiB

Table of Contents

GridFile

Mongoose schema for MongoDB GridFS

const mongoose = require('mongoose')
const schema = require('gridfile')

const GridFile = mongoose.model('GridFile', schema)

const gridFile = new GridFile()

GridFile#length

Type: Number

GridFile#chunkSize

Type: Number

GridFile#uploadDate

Type: Date

GridFile#md5

Type: String

GridFile#filename

A MD5 hash is auto-generated when a file is uploaded

Type: String

GridFile#contentType

Value is be used as contentType option when opening an upload stream: GridFSBucket#openUploadStream

Type: String

GridFile#metadata

Value is be used as metadata option when opening an upload stream: GridFSBucket#openUploadStream

Type: Any

GridFile#aliases

Value is be used as aliases option when opening an upload stream: GridFSBucket#openUploadStream

Type: [String]

GridFile#createdAt

Alias for GridFile#uploadDate

Type: Date

GridFile#chunkSizeBytes

Value is be used as chunkSizeBytes option when opening an upload stream: GridFSBucket#openUploadStream

Type: Number

GridFile.getBucket

Get the GridFS bucket created from the Mongoose connection

Type: Function

Examples

const bucket = GridFile.getBucket()

Returns GridFSBucket GridFS Bucket

GridFile.findOneAndDelete

Delete a file from GridFS using GridFSBucket#delete

Type: Function

Examples

const deletedFile = await GridFile.findOneAndDelete({ filename: 'image.png' })

Returns Promise<GridFile> Deleted GridFile as a Promise

GridFile.findByIdAndDelete

Delete a file from GridFS using GridFSBucket#delete

Type: Function

Examples

const deletedFile = await GridFile.findByIdAndDelete('some-id')

Returns Promise<GridFile> Deleted GridFile as a Promise

GridFile#getUploadStream

Get a GridFS stream to upload a file

Type: Function

Examples

const uploadStream = gridFile.getUploadStream()

Returns GridFSBucketWriteStream Upload Stream

GridFile#getDownloadStream

Get a GridFS stream to download a file

Type: Function

Examples

const downloadStream = gridFile.getDownloadStream()

Returns GridFSBucketReadStream Download Stream

GridFile#uploadStream

Upload a file to GridFS

Type: Function

Parameters

  • FileStream Stream Read stream of file to upload

Examples

const fs = require('fs')

const fileStream = fs.createReadStream('/path/to/file')
const uploadStream = gridFile.uploadStream(fileStream)

uploadStream.on('finish', (file) => {
 console.log(file)
})

Returns GridFSBucketWriteStream Upload Stream

GridFile#downloadStream

Download a file from GridFS

Type: Function

Parameters

  • FileStream Stream Write stream of file to download into

Examples

const fs = require('fs')

const fileStream = fs.createWriteStream('/path/to/file')
const DownloadStream = gridFile.downloadStream(fileStream)

fileStream.on('finish', () => {
 console.log('File downloaded successfully')
})

Returns GridFSBucketWriteStream Download Stream

GridFile#upload

Upload a file to GridFS

Type: Function

Parameters

  • FileStream Stream Read stream of file to upload
  • Callback Function Callback function

Examples

const fs = require('fs')

const fileStream = fs.createReadStream('/path/to/file')
const uploadedFile = await gridFile.upload(fileStream)
// callback
gridFile.upload(filestream, (err, uploadedFile) => {
 if(err){
   console.error(err)
 } else {
   console.log(uploadedFile)
 }
})

Returns Promise<GridFile> GridFile as a Promise

GridFile#download

Download a file from GridFS

Type: Function

Parameters

  • FileStream Stream Write stream of file to download into
  • Callback Function Callback function

Examples

const fs = require('fs')

const fileStream = fs.createWriteStream('/path/to/file')
await gridFile.download(fileStream)
// callback
gridFile.download(fileStream, (err){
 if(err){
   console.error(err)
 } else {
   console.log('File downloaded successfully')
 }
})

Returns Promise<Void> Promise