@Override public void deleteAll() { gridFs.delete(queryForAll()); }
public void downloadFile(String videoId , HttpServletResponse response ) { InputStream is = null; ApplicationContext ctx = new AnnotationConfigApplicationContext(MongoDBConfiguration.class); GridFsOperations gridOperations = (GridFsOperations) ctx.getBean("YourBeanName"); List<GridFSDBFile> result = gridOperations.find(new Query().addCriteria(Criteria.where("_id").is(videoId))); for (GridFSDBFile file : result) { try { /* send file */ } catch (Exception e) { response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); } } }
@Override public void store(InputStream content, String fileName, String contentType, String fileId) { delete(fileId); gridFsTemplate.store(content, fileId, contentType, new FileMetadata(fileName)); }
@Override public BinaryData fetchData(String dataId) { GridFSDBFile file = gridFs.findOne(findByIdQuery(new ObjectId(dataId))); return null == file ? null : new BinaryData(file.getContentType(), file.getLength(), file.getInputStream()); }
@Override public FSFile getFile(String fileId) throws ObjectNotFoundException { GridFSDBFile mongoFile = gridFsTemplate.findOne(filenameQuery(fileId)); if (mongoFile==null) { throw new ObjectNotFoundException("File ["+ fileId +"] not found"); } FileMetadata fileMetadata = mongoConverter.read(FileMetadata.class, mongoFile.getMetaData()); return new MongoFSFile(mongoFile, fileMetadata.getFileName()); }
@Override public void deleteByFilename(String filename) { gridFs.delete(findByFilenameQuery(filename)); }
@Override public List<BinaryData> findByFilename(String filename) { return gridFs.find(findByFilenameQuery(filename)).stream() .map(file -> new BinaryData(file.getContentType(), file.getLength(), file.getInputStream())) .collect(Collectors.toList()); }
@Override public String saveData(BinaryData binaryData, String filename, Map<String, String> metainfo) { return gridFs.store(binaryData.getInputStream(), filename, binaryData.getContentType(), metainfo).getId().toString(); }
@Override public void delete(String fileId) { gridFsTemplate.delete(filenameQuery(fileId)); }
@Override public List<GridFSDBFile> findModifiedLaterAgo(Duration period, String project) { return gridFs.find(ModifiableQueryBuilder.findModifiedLaterThanPeriod(period, project) .addCriteria(where("filename").not().regex(PHOTO_PREFIX))); }
@Override public String saveData(BinaryData binaryData, String filename) { return gridFs.store(binaryData.getInputStream(), filename, binaryData.getContentType()).getId().toString(); }
@Override public void deleteData(String dataId) { gridFs.delete(findByIdQuery(new ObjectId(dataId))); }
@Override public void delete(List<String> ids) { gridFs.delete(query(where("_id").in(ids))); }