Skip to content

Latest commit

 

History

History
258 lines (202 loc) · 8.97 KB

API.md

File metadata and controls

258 lines (202 loc) · 8.97 KB

GridFile

Kind: global class

new 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 : Number

Kind: instance property of GridFile

gridFile.chunkSize : Number

Kind: instance property of GridFile

gridFile.uploadDate : Date

Kind: instance property of GridFile

gridFile.md5 : String

Kind: instance property of GridFile

gridFile.filename : String

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

Kind: instance property of GridFile

gridFile.contentType : String

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

Kind: instance property of GridFile

gridFile.metadata : Any

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

Kind: instance property of GridFile

gridFile.aliases : Array.<String>

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

Kind: instance property of GridFile

gridFile.createdAt : Date

Alias for GridFile#uploadDate

Kind: instance property of GridFile

gridFile.chunkSizeBytes : Number

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

Kind: instance property of GridFile

gridFile.getUploadStream ⇒ GridFSBucketWriteStream

Get a GridFS stream to upload a file

Kind: instance property of GridFile
Returns: GridFSBucketWriteStream - Upload Stream
Example

const uploadStream = gridFile.getUploadStream()

gridFile.getDownloadStream ⇒ GridFSBucketReadStream

Get a GridFS stream to download a file

Kind: instance property of GridFile
Returns: GridFSBucketReadStream - Download Stream
Example

const downloadStream = gridFile.getDownloadStream()

gridFile.uploadStream ⇒ GridFSBucketWriteStream

Upload a file to GridFS

Kind: instance property of GridFile
Returns: GridFSBucketWriteStream - Upload Stream

Param Type Description
FileStream Stream Read stream of file to upload

Example

const fs = require('fs')

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

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

gridFile.downloadStream ⇒ GridFSBucketWriteStream

Download a file from GridFS

Kind: instance property of GridFile
Returns: GridFSBucketWriteStream - Download Stream

Param Type Description
FileStream Stream Write stream of file to download into

Example

const fs = require('fs')

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

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

gridFile.upload ⇒ Promise.<GridFile>

Upload a file to GridFS

Kind: instance property of GridFile
Returns: Promise.<GridFile> - GridFile as a Promise

Param Type Description
FileStream Stream Read stream of file to upload
Callback function Callback function

Example

const fs = require('fs')

const fileStream = fs.createReadStream('/path/to/file')
const uploadedFile = await gridFile.upload(fileStream)

Example

// callback
gridFile.upload(filestream, (err, uploadedFile) => {
 if(err){
   console.error(err)
 } else {
   console.log(uploadedFile)
 }
})

gridFile.download ⇒ Promise.<Void>

Download a file from GridFS

Kind: instance property of GridFile
Returns: Promise.<Void> - Promise

Param Type Description
FileStream Stream Write stream of file to download into
Callback function Callback function

Example

const fs = require('fs')

const fileStream = fs.createWriteStream('/path/to/file')
await gridFile.download(fileStream)

Example

// callback
gridFile.download(fileStream, (err){
 if(err){
   console.error(err)
 } else {
   console.log('File downloaded successfully')
 }
})

GridFile.getBucket ⇒ GridFSBucket

Get the GridFS bucket created from the Mongoose connection

Kind: static property of GridFile
Returns: GridFSBucket - GridFS Bucket
Example

const bucket = GridFile.getBucket()

GridFile.findOneAndDelete ⇒ Promise.<GridFile>

Delete a file from GridFS using GridFSBucket#delete

Kind: static property of GridFile
Returns: Promise.<GridFile> - Deleted GridFile as a Promise
Example

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

GridFile.findByIdAndDelete ⇒ Promise.<GridFile>

Delete a file from GridFS using GridFSBucket#delete

Kind: static property of GridFile
Returns: Promise.<GridFile> - Deleted GridFile as a Promise
Example

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