List of usage examples for com.mongodb.client.gridfs GridFSBucket getBucketName
String getBucketName();
From source file:org.apache.nifi.processors.mongodb.gridfs.DeleteGridFS.java
License:Apache License
@Override public void onTrigger(ProcessContext context, ProcessSession session) throws ProcessException { FlowFile input = session.get();//from w w w . j av a 2s.com if (input == null) { return; } final String deleteQuery = getQuery(context, input); final String queryAttribute = context.getProperty(QUERY_ATTRIBUTE).isSet() ? context.getProperty(QUERY_ATTRIBUTE).evaluateAttributeExpressions(input).getValue() : null; GridFSBucket bucket = getBucket(input, context); try { Document query = Document.parse(deleteQuery); MongoCursor cursor = bucket.find(query).iterator(); if (cursor.hasNext()) { GridFSFile file = (GridFSFile) cursor.next(); bucket.delete(file.getObjectId()); if (!StringUtils.isEmpty(queryAttribute)) { input = session.putAttribute(input, queryAttribute, deleteQuery); } session.transfer(input, REL_SUCCESS); } else { getLogger().error(String.format("Query %s did not delete anything in %s", deleteQuery, bucket.getBucketName())); session.transfer(input, REL_FAILURE); } cursor.close(); } catch (Exception ex) { getLogger().error(String.format("Error deleting using query: %s", deleteQuery), ex); session.transfer(input, REL_FAILURE); } }
From source file:org.apache.nifi.processors.mongodb.gridfs.PutGridFS.java
License:Apache License
@Override public void onTrigger(ProcessContext context, ProcessSession session) throws ProcessException { FlowFile input = session.get();// w w w . java2 s. c o m if (input == null) { return; } GridFSBucket bucket = getBucket(input, context); if (!canUploadFile(context, input, bucket.getBucketName())) { getLogger().error("Cannot upload the file because of the uniqueness policy configured."); session.transfer(input, REL_DUPLICATE); return; } final int chunkSize = context.getProperty(CHUNK_SIZE).evaluateAttributeExpressions(input) .asDataSize(DataUnit.B).intValue(); try (InputStream fileInput = session.read(input)) { String fileName = context.getProperty(FILE_NAME).evaluateAttributeExpressions(input).getValue(); GridFSUploadOptions options = new GridFSUploadOptions().chunkSizeBytes(chunkSize) .metadata(getMetadata(input, context)); ObjectId id = bucket.uploadFromStream(fileName, fileInput, options); fileInput.close(); if (id != null) { input = session.putAttribute(input, ID_ATTRIBUTE, id.toString()); session.transfer(input, REL_SUCCESS); session.getProvenanceReporter().send(input, getTransitUri(id, input, context)); } else { getLogger().error("ID was null, assuming failure."); session.transfer(input, REL_FAILURE); } } catch (Exception ex) { getLogger().error("Failed to upload file", ex); session.transfer(input, REL_FAILURE); } }