Camel GridFS component
Available as of Camel 2.17
Maven users will need to add the following dependency to their pom.xml
for this component:
Endpoint options
GridFS endpoints support the following options, depending on whether they are acting like a Producer or as a Consumer (options vary based on the consumer type too).
Name | Default Value | Description | Producer | Consumer |
---|
database
| none | Required. The name of the database to which this endpoint will be bound. All operations will be executed against this database. | | |
bucket
| fs | The name of the GridFS bucket within the Database. The default is the GridFS.DEFAULT_BUCKET value ("fs"). | | |
operation
| create | The id of the operation this endpoint will execute. Pick from the following: - Query operations:
findOne , listAll , count - Write operations:
create - Delete operations:
remove
| | |
query | none | Combined with the query strategy parameters to create the query used to search for new files. | | |
queryStrategy | TimeStamp | The strategy that is used to find new files. Can be one of: - TimeStamp - files that are uploaded after the Consumer starts are processed
- PersistentTimestamp - Like TimeStamp, but the last timestamp used is persisted to a collection so when the Consumer restarts, it can resume where it left off
- FileAttribute - finds files that do NOT have the give attribute. After processing, it adds the attribute.
- TimestampAndFileAttribute - finds files that are newer than the TimeStamp and are missing the attribute
- PersistentTimestampAndFileAttribute
| | |
persistentTSCollection | camel-timestamps | When using persistent timestamps, this is the Collection that the timestamp is stored into. | | |
persistenTSObject | camel-timestamp | When using persistent timestamps, this is the object ID for the timestamp object. Each consumer can have it's own timestamp ID stored in a common Collection | | |
fileAttributeName | camel-processed | When using FileAttribute, this is the name of the attribute that is used. When a file is about to be processed, the attribute is set to "processing" and then set to "done" when the file processing is done. | | |
delay | 500 (ms) | The delay between polling GridFS for new files | | |
initialDelay | 1000 (ms) | The initial delay before the first poll | | |
Configuration of database in Spring XML
The following Spring XML creates a bean defining the connection to a MongoDB instance.
Sample route
The following route defined in Spring XML executes the operation findOne on a collection.
GridFS operations - producer endpoint
count
Returns the total number of file in the collection, returning an Integer as the OUT message body.
You can provide a filename header to provide a count of files matching that filename.
listAll
Returns an Reader that lists all the filenames and their IDs in a tab separated stream.
findOne
Finds a file in the GridFS system and sets the body to an InputStream of the content. Also provides the metadata has headers. It uses Exchange.FILE_NAME from the incoming headers to determine the file to find.
create
Creates a new file in the GridFs database. It uses the Exchange.FILE_NAME from the incoming headers for the name and the body contents (as an InputStream) as the content.
remove
Removes a file from the GridFS database.
GridFS Consumer
See also