Class GridFS
Implementation of GridFS - a specification for storing and retrieving files that exceed the BSON-document size limit of 16MB.
Instead of storing a file in a single document, GridFS divides a file into parts, or chunks, and stores each of those chunks as a separate document. By default GridFS limits chunk size to 255k. GridFS uses two collections to store files. One collection stores the file chunks, and the other stores file metadata.
When you query a GridFS store for a file, the driver or client will reassemble the chunks as needed. You can perform range queries on files stored through GridFS. You also can access information from arbitrary sections of files, which allows you to "skip" into the middle of a video or audio file.
GridFS is useful not only for storing files that exceed 16MB but also for storing any files for which you want access without having to load the entire file into memory. For more information on the indications of GridFS, see MongoDB official documentation.
- MongoDB documentation
- GridFS
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Bucket to use for the collection namespacesstatic final int
File's chunk size -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionThis method creates an emptyGridFSInputFile
instance.createFile
(byte[] data) Creates a file entry.createFile
(File file) Creates a file entry.Creates a file entry.createFile
(InputStream in, boolean closeStreamOnPersist) Creates a file entry.createFile
(InputStream in, String filename) Creates a file entry.createFile
(InputStream in, String filename, boolean closeStreamOnPersist) Creates a file entry.createFile
(String filename) Creates a file entry.Finds a list of files matching the given query.Finds a list of files matching the given query.Finds a list of files matching the given filename.Finds a list of files matching the given filename.Finds one file matching the given objectId.Finds one file matching the given query.Finds one file matching the given filename.Finds one file matching the given objectId.Gets the bucket name used in the collection's namespace.protected DBCollection
Gets theDBCollection
in which the binary chunks are stored.getDB()
Gets the database used.Gets the list of files stored in this gridfs, sorted by filename.getFileList
(DBObject query) Gets a filtered list of files stored in this gridfs, sorted by filename.getFileList
(DBObject query, DBObject sort) Gets a sorted, filtered list of files stored in this gridfs.protected DBCollection
Gets theDBCollection
in which the file's metadata is stored.void
Removes all files matching the given query.void
Removes all files matching the given filename.void
Removes the file matching the given id.
-
Field Details
-
DEFAULT_CHUNKSIZE
public static final int DEFAULT_CHUNKSIZEFile's chunk size- See Also:
-
DEFAULT_BUCKET
Bucket to use for the collection namespaces- See Also:
-
-
Constructor Details
-
GridFS
Creates a GridFS instance for the default bucket "fs" in the given database. Set the preferred WriteConcern on the give DB with DB.setWriteConcern- Parameters:
db
- database to work with- Throws:
MongoException
- if there's a failure- See Also:
-
GridFS
Creates a GridFS instance for the specified bucket in the given database. Set the preferred WriteConcern on the give DB with DB.setWriteConcern- Parameters:
db
- database to work withbucket
- bucket to use in the given database- Throws:
MongoException
- if there's a failure- See Also:
-
-
Method Details
-
getFileList
Gets the list of files stored in this gridfs, sorted by filename.- Returns:
- cursor of file objects
-
getFileList
Gets a filtered list of files stored in this gridfs, sorted by filename.- Parameters:
query
- filter to apply- Returns:
- cursor of file objects
-
getFileList
Gets a sorted, filtered list of files stored in this gridfs.- Parameters:
query
- filter to applysort
- sorting to apply- Returns:
- cursor of file objects
-
find
Finds one file matching the given objectId. Equivalent to findOne(objectId).- Parameters:
objectId
- the objectId of the file stored on a server- Returns:
- a gridfs file
- Throws:
MongoException
- if the operation fails
-
findOne
Finds one file matching the given objectId.- Parameters:
objectId
- the objectId of the file stored on a server- Returns:
- a gridfs file
- Throws:
MongoException
- if the operation fails
-
findOne
Finds one file matching the given filename.- Parameters:
filename
- the name of the file stored on a server- Returns:
- the gridfs db file
- Throws:
MongoException
- if the operation fails
-
findOne
Finds one file matching the given query.- Parameters:
query
- filter to apply- Returns:
- a gridfs file
- Throws:
MongoException
- if the operation fails
-
find
Finds a list of files matching the given filename.- Parameters:
filename
- the filename to look for- Returns:
- list of gridfs files
- Throws:
MongoException
- if the operation fails
-
find
Finds a list of files matching the given filename.- Parameters:
filename
- the filename to look forsort
- the fields to sort with- Returns:
- list of gridfs files
- Throws:
MongoException
- if the operation fails
-
find
Finds a list of files matching the given query.- Parameters:
query
- the filter to apply- Returns:
- list of gridfs files
- Throws:
MongoException
- if the operation fails
-
find
Finds a list of files matching the given query.- Parameters:
query
- the filter to applysort
- the fields to sort with- Returns:
- list of gridfs files
- Throws:
MongoException
- if the operation fails
-
remove
Removes the file matching the given id.- Parameters:
id
- the id of the file to be removed- Throws:
MongoException
- if the operation fails
-
remove
Removes all files matching the given filename.- Parameters:
filename
- the name of the file to be removed- Throws:
MongoException
- if the operation fails
-
remove
Removes all files matching the given query.- Parameters:
query
- filter to apply- Throws:
MongoException
- if the operation fails
-
createFile
Creates a file entry. After calling this method, you have to callGridFSInputFile.save()
.- Parameters:
data
- the file's data- Returns:
- a gridfs input file
-
createFile
Creates a file entry. After calling this method, you have to callGridFSInputFile.save()
.- Parameters:
file
- the file object- Returns:
- a GridFS input file
- Throws:
IOException
- if there are problems readingfile
-
createFile
Creates a file entry. After calling this method, you have to callGridFSInputFile.save()
.- Parameters:
in
- an inputstream containing the file's data- Returns:
- a gridfs input file
-
createFile
Creates a file entry. After calling this method, you have to callGridFSInputFile.save()
.- Parameters:
in
- an inputstream containing the file's datacloseStreamOnPersist
- indicate the passed in input stream should be closed once the data chunk persisted- Returns:
- a gridfs input file
-
createFile
Creates a file entry. After calling this method, you have to callGridFSInputFile.save()
.- Parameters:
in
- an inputstream containing the file's datafilename
- the file name as stored in the db- Returns:
- a gridfs input file
-
createFile
public GridFSInputFile createFile(InputStream in, @Nullable String filename, boolean closeStreamOnPersist) Creates a file entry. After calling this method, you have to callGridFSInputFile.save()
.- Parameters:
in
- an inputstream containing the file's datafilename
- the file name as stored in the dbcloseStreamOnPersist
- indicate the passed in input stream should be closed once the data chunk persisted- Returns:
- a gridfs input file
-
createFile
Creates a file entry.- Parameters:
filename
- the file name as stored in the db- Returns:
- a gridfs input file
- See Also:
-
createFile
This method creates an emptyGridFSInputFile
instance. On this instance anOutputStream
can be obtained using theGridFSInputFile.getOutputStream()
method. You can still callGridFSInputFile.setContentType(String)
andGridFSInputFile.setFilename(String)
. The file will be completely written and closed after calling theOutputStream.close()
method on the output stream.- Returns:
- GridFS file handle instance.
-
getBucketName
Gets the bucket name used in the collection's namespace. Default value is 'fs'.- Returns:
- the name of the file bucket
-
getDB
Gets the database used.- Returns:
- the database
-
getFilesCollection
Gets theDBCollection
in which the file's metadata is stored.- Returns:
- the collection
-
getChunksCollection
Gets theDBCollection
in which the binary chunks are stored.- Returns:
- the collection
-