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.

373 lines
6.8 KiB

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
### Table of Contents
- [GridFile][1]
- [GridFile#length][2]
- [GridFile#chunkSize][3]
- [GridFile#uploadDate][4]
- [GridFile#md5][5]
- [GridFile#filename][6]
- [GridFile#contentType][7]
- [GridFile#metadata][8]
- [GridFile#aliases][9]
- [GridFile#createdAt][10]
- [GridFile#chunkSizeBytes][11]
- [GridFile.getBucket][12]
- [Examples][13]
- [GridFile.findOneAndDelete][14]
- [Examples][15]
- [GridFile.findByIdAndDelete][16]
- [Examples][17]
- [GridFile#getUploadStream][18]
- [Examples][19]
- [GridFile#getDownloadStream][20]
- [Examples][21]
- [GridFile#uploadStream][22]
- [Parameters][23]
- [Examples][24]
- [GridFile#downloadStream][25]
- [Parameters][26]
- [Examples][27]
- [GridFile#upload][28]
- [Parameters][29]
- [Examples][30]
- [GridFile#download][31]
- [Parameters][32]
- [Examples][33]
## GridFile
Mongoose schema for MongoDB GridFS
```javascript
const mongoose = require('mongoose')
const schema = require('gridfile')
const GridFile = mongoose.model('GridFile', schema)
const gridFile = new GridFile()
```
## GridFile#length
Type: [Number][34]
## GridFile#chunkSize
Type: [Number][34]
## GridFile#uploadDate
Type: [Date][35]
## GridFile#md5
Type: [String][36]
## GridFile#filename
A MD5 hash is auto-generated when a file is uploaded
Type: [String][36]
## GridFile#contentType
Value is be used as `contentType` option when opening an upload stream: [GridFSBucket#openUploadStream][37]
Type: [String][36]
## GridFile#metadata
Value is be used as `metadata` option when opening an upload stream: [GridFSBucket#openUploadStream][37]
Type: Any
## GridFile#aliases
Value is be used as `aliases` option when opening an upload stream: [GridFSBucket#openUploadStream][37]
Type: \[[String][36]]
## GridFile#createdAt
Alias for GridFile#uploadDate
Type: [Date][35]
## GridFile#chunkSizeBytes
Value is be used as `chunkSizeBytes` option when opening an upload stream: [GridFSBucket#openUploadStream][37]
Type: [Number][34]
## GridFile.getBucket
Get the GridFS bucket created from the Mongoose connection
Type: [Function][38]
### Examples
```javascript
const bucket = GridFile.getBucket()
```
Returns **GridFSBucket** GridFS Bucket
## GridFile.findOneAndDelete
Delete a file from GridFS using [GridFSBucket#delete][39]
Type: [Function][38]
### Examples
```javascript
const deletedFile = await GridFile.findOneAndDelete({ filename: 'image.png' })
```
Returns **[Promise][40]&lt;[GridFile][41]>** Deleted GridFile as a Promise
## GridFile.findByIdAndDelete
Delete a file from GridFS using [GridFSBucket#delete][39]
Type: [Function][38]
### Examples
```javascript
const deletedFile = await GridFile.findByIdAndDelete('some-id')
```
Returns **[Promise][40]&lt;[GridFile][41]>** Deleted GridFile as a Promise
## GridFile#getUploadStream
Get a GridFS stream to upload a file
Type: [Function][38]
### Examples
```javascript
const uploadStream = gridFile.getUploadStream()
```
Returns **GridFSBucketWriteStream** Upload Stream
## GridFile#getDownloadStream
Get a GridFS stream to download a file
Type: [Function][38]
### Examples
```javascript
const downloadStream = gridFile.getDownloadStream()
```
Returns **GridFSBucketReadStream** Download Stream
## GridFile#uploadStream
Upload a file to GridFS
Type: [Function][38]
### Parameters
- `FileStream` **[Stream][42]** Read stream of file to upload
### Examples
```javascript
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][38]
### Parameters
- `FileStream` **[Stream][42]** Write stream of file to download into
### Examples
```javascript
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][38]
### Parameters
- `FileStream` **[Stream][42]** Read stream of file to upload
- `Callback` **[Function][38]** Callback function
### Examples
```javascript
const fs = require('fs')
const fileStream = fs.createReadStream('/path/to/file')
const uploadedFile = await gridFile.upload(fileStream)
```
```javascript
// callback
gridFile.upload(filestream, (err, uploadedFile) => {
if(err){
console.error(err)
} else {
console.log(uploadedFile)
}
})
```
Returns **[Promise][40]&lt;[GridFile][41]>** GridFile as a Promise
## GridFile#download
Download a file from GridFS
Type: [Function][38]
### Parameters
- `FileStream` **[Stream][42]** Write stream of file to download into
- `Callback` **[Function][38]** Callback function
### Examples
```javascript
const fs = require('fs')
const fileStream = fs.createWriteStream('/path/to/file')
await gridFile.download(fileStream)
```
```javascript
// callback
gridFile.download(fileStream, (err){
if(err){
console.error(err)
} else {
console.log('File downloaded successfully')
}
})
```
Returns **[Promise][40]&lt;Void>** Promise
[1]: #gridfile
[2]: #gridfilelength
[3]: #gridfilechunksize
[4]: #gridfileuploaddate
[5]: #gridfilemd5
[6]: #gridfilefilename
[7]: #gridfilecontenttype
[8]: #gridfilemetadata
[9]: #gridfilealiases
[10]: #gridfilecreatedat
[11]: #gridfilechunksizebytes
[12]: #gridfilegetbucket
[13]: #examples
[14]: #gridfilefindoneanddelete
[15]: #examples-1
[16]: #gridfilefindbyidanddelete
[17]: #examples-2
[18]: #gridfilegetuploadstream
[19]: #examples-3
[20]: #gridfilegetdownloadstream
[21]: #examples-4
[22]: #gridfileuploadstream
[23]: #parameters
[24]: #examples-5
[25]: #gridfiledownloadstream
[26]: #parameters-1
[27]: #examples-6
[28]: #gridfileupload
[29]: #parameters-2
[30]: #examples-7
[31]: #gridfiledownload
[32]: #parameters-3
[33]: #examples-8
[34]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
[35]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date
[36]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
[37]: https://mongodb.github.io/node-mongodb-native/3.6/api/GridFSBucket.html#openUploadStream
[38]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
[39]: https://mongodb.github.io/node-mongodb-native/3.6/api/GridFSBucket.html#delete
[40]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
[41]: #gridfile
[42]: https://nodejs.org/api/stream.html