/** * Save the attachment for a data set. * @param metadata The metadata of the attachment. * @return The GridFs filename. * @throws IOException thrown when the input stream is not closable */ public String createDataSetAttachment(MultipartFile multipartFile, DataSetAttachmentMetadata metadata) throws IOException { try (InputStream in = multipartFile.getInputStream()) { String currentUser = SecurityUtils.getCurrentUserLogin(); metadata.setVersion(0L); metadata.setCreatedDate(LocalDateTime.now()); metadata.setCreatedBy(currentUser); metadata.setLastModifiedBy(currentUser); metadata.setLastModifiedDate(LocalDateTime.now()); String filename = buildFileName(metadata); String contentType = mimeTypeDetector.detect(multipartFile); GridFSFile gridFsFile = this.operations.store(in, filename, contentType, metadata); gridFsFile.validate(); return gridFsFile.getFilename(); } }
/** * Save the attachment for an instrument. * @param metadata The metadata of the attachment. * @return The GridFs filename. * @throws IOException thrown when the input stream cannot be closed */ public String createInstrumentAttachment(MultipartFile multipartFile, InstrumentAttachmentMetadata metadata) throws IOException { try (InputStream in = multipartFile.getInputStream()) { String currentUser = SecurityUtils.getCurrentUserLogin(); metadata.setVersion(0L); metadata.setCreatedDate(LocalDateTime.now()); metadata.setCreatedBy(currentUser); metadata.setLastModifiedBy(currentUser); metadata.setLastModifiedDate(LocalDateTime.now()); String contentType = mimeTypeDetector.detect(multipartFile); GridFSFile gridFsFile = this.operations.store(in, buildFileName(metadata), contentType, metadata); gridFsFile.validate(); return gridFsFile.getFilename(); } }
/** * Save the attachment for a survey. * @param metadata The metadata of the attachment. * @return The GridFs filename. * @throws IOException thrown when the input stream is not closable */ public String createSurveyAttachment(MultipartFile multipartFile, SurveyAttachmentMetadata metadata) throws IOException { try (InputStream in = multipartFile.getInputStream()) { String currentUser = SecurityUtils.getCurrentUserLogin(); metadata.setVersion(0L); metadata.setCreatedDate(LocalDateTime.now()); metadata.setCreatedBy(currentUser); metadata.setLastModifiedBy(currentUser); metadata.setLastModifiedDate(LocalDateTime.now()); String contentType = mimeTypeDetector.detect(multipartFile); String filename = buildFileName(metadata); GridFSFile gridFsFile = this.operations.store(in, filename, contentType, metadata); gridFsFile.validate(); return gridFsFile.getFilename(); } }
/** * Save the attachment for a study. * @param metadata The metadata of the attachment. * @return The GridFs filename. * @throws IOException thrown when the input stream cannot be closed */ public String createStudyAttachment(MultipartFile multipartFile, StudyAttachmentMetadata metadata) throws IOException { try (InputStream in = multipartFile.getInputStream()) { String currentUser = SecurityUtils.getCurrentUserLogin(); metadata.setVersion(0L); metadata.setCreatedDate(LocalDateTime.now()); metadata.setCreatedBy(currentUser); metadata.setLastModifiedBy(currentUser); metadata.setLastModifiedDate(LocalDateTime.now()); metadata.generateId(); String contentType = mimeTypeDetector.detect(multipartFile); GridFSFile gridFsFile = this.operations.store(in, StudyAttachmentFilenameBuilder.buildFileName(metadata), contentType, metadata); gridFsFile.validate(); javers.commit(currentUser, metadata); return gridFsFile.getFilename(); } }
private boolean isDumpToLocal(GridFSFile file, GridFS fs){ long limit = 0; if(this.sizeToLocal.containsKey(fs.getDB().getName())){ limit = this.sizeToLocal.get(fs.getDB().getName()); }else { limit = this.sizeToLocal.get("default"); } if(file == null && limit == 0){ return true; }else if(file != null){ log.debug("Check db limit, file size:" + file.getLength() + ", db:" + limit); return file.getLength() > limit; }else { return false; } }
public GridFSFile saveGlbFile(InputStream inputStream, String fileName, int rid, double lon, double lat) { DBObject metaData = new BasicDBObject("rid", rid); metaData.put(STORE_BIM_TYPE, STORE_GLB_FILE); metaData.put("rid", rid); metaData.put("lon", lon); metaData.put("lat", lat); return gridFsTemplate.store(inputStream, fileName, metaData); }
public GridFSFile saveGlbOffline(InputStream inputStream, String fileName, Long id, double lon, double lat) { DBObject metaData = new BasicDBObject("offline", true); metaData.put("id", id); metaData.put(STORE_BIM_TYPE, STORE_GLB_FILE); metaData.put("lon", lon); metaData.put("lat", lat); return gridFsTemplate.store(inputStream, fileName, metaData); }
/** * 上传文件 * * @param fileEntity 文件实体 * @param file 待上传文件 * @param metaData 文件元数据 * @throws FileNotFoundException 文件不存在 */ @Override public FileEntity upload(FileEntity fileEntity, File file, DBObject metaData) throws FileNotFoundException { // Upload to GridFS FileInputStream fileStream = new FileInputStream(file); GridFSFile uploadFile = gridFsOperations.store(fileStream, fileEntity.getFilename(), metaData); // Save entity to MongoDB fileEntity.setFileId(uploadFile.getId().toString()); fileEntity.setUploadTime(Utils.getCurrentTimestamp()); return fileRepository.save(fileEntity); }
/** * Method to store a file within MongoDB's GridFS. * @param inputStream containing the file to store. * @param fileName the file name under which the file is to be saved. * @param contentType a mime type describing the contents of the file. * @return a GridFSDBFile object on which an InputStream can be opened. */ public FSFile store(InputStream inputStream, String fileName, String contentType) { try (AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class)) { GridFsOperations gridOperations = (GridFsOperations) ctx.getBean("gridFsTemplate"); GridFSFile file = gridOperations.store(inputStream, fileName, contentType); return new FSFile((ObjectId) file.getId(), fileName, contentType, file.getLength()); } }
@Override public String getMimeType() { if ((mimeType == null || mimeType.isEmpty()) && getId() != null) { MediaAssetService mediaAssetService = app.service(MediaAssetService.class); GridFSFile fsFile = mediaAssetService.getGridFsFile(getId()); if (fsFile != null) { mimeType = fsFile.getContentType(); } } return mimeType; }
/** * Save the given stream to mongo in a "temp directory" and return the final filename. * * @param stream The bytes to save * @param fileName The fileName which gets prefixed with /tmp/ * @param contentType the content type of the file * @return the final filename * @throws IOException thrown when the input stream cannot be closed */ public String saveTempFile(InputStream stream, String fileName, String contentType) throws IOException { try (InputStream inputStream = stream) { GridFSFile gridFsFile = this.gridfOperations.store(inputStream, "/tmp/" + fileName, contentType); gridFsFile.validate(); return gridFsFile.getFilename(); } }
/** * This method save an image into GridFS/MongoDB based on a byteArrayOutputStream. * Existing image should be deleted before saving/updating an image * @param questionId The id of the question to be saved * @return return the name of the saved image in the GridFS / MongoDB. * @throws IOException Thrown when the input stream cannot be closed */ public String saveQuestionImage(MultipartFile multipartFile, String questionId) throws IOException { try (InputStream in = multipartFile.getInputStream()) { String contentType = mimeTypeDetector.detect(multipartFile); GridFSFile gridFsFile = this.operations.store(in, "/questions/" + questionId, contentType); gridFsFile.validate(); return gridFsFile.getFilename(); } }
/** * This method save an image into GridFS/MongoDB based on a byteArrayOutputStream. * Existing image should be deleted before saving/updating an image * @param surveyId The id of the question to be saved * @return return the name of the saved image in the GridFS / MongoDB. * @throws IOException thrown if the input stream cannot be closed */ public String saveSurveyImage(MultipartFile multipartFile, String surveyId, String fileName) throws IOException { try (InputStream in = multipartFile.getInputStream()) { String relativePathWithName = "/surveys/" + surveyId + "/" + fileName; String contentType = mimeTypeDetector.detect(multipartFile); GridFSFile gridFsFile = this.operations.store(in, relativePathWithName, contentType); gridFsFile.validate(); return gridFsFile.getFilename(); } }
@Override public Book addPage(String bookId, Page page) { Book readBook = readBook(bookId,INVALID_PAGINATION_PARAMITER,INVALID_PAGINATION_PARAMITER); GridFSFile store = gridFsTemplate.store(new ByteArrayInputStream(page.getBytes()), page.getFileName()); Book book = BookBuilder.newBookBuilder(readBook).addPage(fileNameToindex(page), String.valueOf(store.getId())).build(); mongoTemplate.save(book); return book; }
private MongoRepositoryItem(MongoRepository repository, GridFSFile dbFile, State state) { super(dbFile.getId().toString(), state, loadAttributes(dbFile), repository); this.dbFile = dbFile; // don't call ours setMetadata(...) super.setMetadata(new HashMap<String, String>()); }
void setImage(String id, MultipartFile image, Set<String> tokens) throws IOException { Zettl zettl = mongoOperations.findById(id, Zettl.class); deleteOldImage(zettl, tokens); GridFSFile gridFSFile = gridFsOperations.store(image.getInputStream(), image.getName(), image.getContentType()); zettl.setImageId(gridFSFile.getId().toString()); zettlUpdater.save(zettl, tokens); }
/** * * @param inputStream * @param fileName */ public GridFSFile saveSourceIfcFile(InputStream inputStream, String fileName) { DBObject metaData = new BasicDBObject(); metaData.put(STORE_BIM_TYPE, STORE_IFC_FILE); return gridFsTemplate.store(inputStream, fileName); }
public GridFSFile saveIfcModel(InputStream inputStream, String fileName, int rid) { DBObject metaData = new BasicDBObject("rid", rid); metaData.put(STORE_BIM_TYPE, STORE_IFC_MODEL); metaData.put("rid", rid); return gridFsTemplate.store(inputStream, fileName, metaData); }
/** * @param dbFile */ public GridFsArtifact(final GridFSFile dbFile) { super(dbFile.getId().toString(), new DbArtifactHash(dbFile.getFilename(), dbFile.getMD5()), dbFile.getLength(), dbFile.getContentType()); this.dbFile = dbFile; }
@Override public String upload(InputStream content, String fileName, String contentType) { GridFSFile file = gridFsTemplate.store(content, fileName, contentType); return file.getId().toString(); }
public GridFSFile upload(GridFSFileBuilder inputFile) throws Exception { GridFSInputFile _inFile = inputFile.build(this); _inFile.save(); return _inFile; }
public AttachmentValue storeAttachment(AttachmentValue fileMetadata, InputStream binaryData) { GridFSFile res = gridFsOperations.store(binaryData, fileMetadata.getFilename(), fileMetadata.getContentType()); return new AttachmentValue(res.getId().toString(), res.getContentType(), res.getFilename(), res.getLength(), new DateTime(res.getUploadDate())); }
private GridFSFile mockedFsDbFileFromAttachmentValue(AttachmentValue input) { return new TestGridFsFile(input.getContentType(), input.getCreated().getMillis(), input.getFilename(), input.getFileReference(), input.getSize()); }
String storeImage(MultipartFile image) throws IOException { GridFSFile gridFSFile = gridFsOperations.store(image.getInputStream(), image.getName(), image.getContentType()); return gridFSFile.getId().toString(); }
/** * Maps a single {@link GridFSFile} to {@link AbstractDbArtifact}. * * @param tenant * the tenant * @param dbFile * the mongoDB gridFs file. * @return a mapped artifact from the given dbFile */ private static GridFsArtifact map(final GridFSFile fsFile) { if (fsFile == null) { return null; } return new GridFsArtifact(fsFile); }
private static RepositoryItemAttributes loadAttributes(GridFSFile file) { RepositoryItemAttributes attributes = new RepositoryItemAttributes(); attributes.setContentLength(file.getLength()); attributes.setLastModified(file.getUploadDate().getTime()); attributes.setMimeType(file.getContentType()); return attributes; }