builder.field("contentType", file.getContentType()); builder.field("md5", file.getMD5()); builder.field("length", file.getLength()); builder.field("chunkSize", file.getChunkSize()); builder.field("uploadDate", file.getUploadDate());
@Override public long getSize() { return attachmant.getLength(); } };
@Override public long getLength() { return mongoFile.getLength(); }
@Override public Long execute() throws Exception { GridFSDBFile gridFSDBFile = gridFS.findOne(new BasicDBObject("md5", blobId)); if (gridFSDBFile == null) { throw new Exception("Blob does not exist"); } return gridFSDBFile.getLength(); } }
@RequestMapping(value = "/image", method = RequestMethod.GET) @ResponseBody public ResponseEntity<InputStreamResource> getImage() { GridFSDBFile gridFsFile = App.getImageResponse(); return ResponseEntity.ok() .contentLength(gridFsFile.getLength()) .contentType(MediaType.parseMediaType(gridFsFile.getContentType())) .body(new InputStreamResource(gridFsFile.getInputStream())); }
public ResponseEntity<InputStreamResource> downloadUserAvatarImage(@PathVariable Long userId) { GridFSDBFile gridFsFile = fileService.findUserAccountAvatarById(userId); return ResponseEntity.ok() .contentLength(gridFsFile.getLength()) .contentType(MediaType.parseMediaType(gridFsFile.getContentType())) .body(new InputStreamResource(gridFsFile.getInputStream())); }
@Override public Long getSize() { if(getFile() == null){ return 0l; } return getFile().getLength(); }
@RequestMapping(value = "/getFileById/{id}", method = RequestMethod.GET) public @ResponseBody void download(@PathVariable String id, HttpServletRequest request, HttpServletResponse response) throws IOException { organizationFileAttachmentService.setUser(getUser()); GridFSDBFile file = organizationFileAttachmentService.getGridFSDBFileById(new ObjectId(id), "File"); if (file != null) { try { response.setContentType(file.getContentType()); response.setContentLength((new Long(file.getLength()).intValue())); response.setHeader("content-Disposition", "attachment; filename=" + file.getFilename());// "attachment;filename=test.xls" // copy it to response's OutputStream IOUtils.copyLarge(file.getInputStream(), response.getOutputStream()); } catch (IOException ex) { _logger.info("Error writing file to output stream. Filename was '" + id + "'"); throw new RuntimeException("IOError writing file to output stream"); } } }
@RequestMapping(value=URI_EVENTS + "/image", method=RequestMethod.GET) public @ResponseBody HttpEntity<byte[]> getEventImage(@RequestParam String id) { GridFSDBFile file = gridFsTemplate.findOne(Query.query(Criteria.where("_id").is(id))); String contentType = null; Long fileLength = null; InputStream is = null; if(null != file) { is = file.getInputStream(); fileLength = file.getLength(); contentType = file.getContentType(); } byte[] bytes = null; try { bytes = IOUtils.readFully(is, -1, true); } catch (Exception ex) { ex.printStackTrace(); } return ResponseEntity.ok() .contentLength(fileLength) .contentType(MediaType.parseMediaType(contentType)) .body(bytes); }
@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()); }
/** * get the file content length after saved to MongoDB. * @return */ public long getFileContentLength() { BuguFS fs = BuguFSFactory.getInstance().create(connection, bucket, chunkSize); GridFSDBFile f = fs.findOneById(fileId); return f.getLength(); }
get("/post/:id", (req, res ) -> { //what's the difference between these 2? res.raw().setContentType("video/mp4"); res.type("video/mp4"); String id = req.params(":id"); ObjectId objectId = new ObjectId(id); BasicDBObject query = new BasicDBObject(); query.put("_id", objectId); GridFS gridfile = new GridFS(db, "videos"); GridFSDBFile gridFSDBFile = gridfile.findOne(query); res.raw().setContentLengthLong(gridFSDBFile.getLength()); InputStream inputStream = gridFSDBFile.getInputStream(); ServletOutputStream out = res.raw().getOutputStream(); int data = inputStream.read(); while (data >= 0) { gridFSDBFile.writeTo(out); data = inputStream.read(); } // out.flush(); out.close(); return 200; });
private int fetchBlobFromMongo() throws Exception { GridFSDBFile gridFile = gridFS.findOne(new BasicDBObject("md5", blobId)); long fileLength = gridFile.getLength(); long start = blobOffset; long end = blobOffset + length; if (end > fileLength) { end = fileLength; } length = (int) (end - start); if (start < end) { InputStream is = gridFile.getInputStream(); if (blobOffset > 0) { IOUtils.skipFully(is, blobOffset); } IOUtils.readFully(is, buffer, bufferOffset, length); is.close(); return length; } return -1; } }
@Override public List<? extends BoundedSource<ObjectId>> split( long desiredBundleSizeBytes, PipelineOptions options) throws Exception { Mongo mongo = spec.connectionConfiguration().setupMongo(); try { GridFS gridfs = spec.connectionConfiguration().setupGridFS(mongo); DBCursor cursor = createCursor(gridfs); long size = 0; List<BoundedGridFSSource> list = new ArrayList<>(); List<ObjectId> objects = new ArrayList<>(); while (cursor.hasNext()) { GridFSDBFile file = (GridFSDBFile) cursor.next(); long len = file.getLength(); if ((size + len) > desiredBundleSizeBytes && !objects.isEmpty()) { list.add(new BoundedGridFSSource(spec, objects)); size = 0; objects = new ArrayList<>(); } objects.add((ObjectId) file.getId()); size += len; } if (!objects.isEmpty() || list.isEmpty()) { list.add(new BoundedGridFSSource(spec, objects)); } return list; } finally { mongo.close(); } }
exchange.getIn().setHeader(GridFsEndpoint.GRIDFS_METADATA, JSON.serialize(file.getMetaData())); exchange.getIn().setHeader(Exchange.FILE_CONTENT_TYPE, file.getContentType()); exchange.getIn().setHeader(Exchange.FILE_LENGTH, file.getLength()); exchange.getIn().setHeader(Exchange.FILE_LAST_MODIFIED, file.getUploadDate()); exchange.getIn().setBody(file.getInputStream(), InputStream.class);
@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 long getEstimatedSizeBytes(PipelineOptions options) throws Exception { Mongo mongo = spec.connectionConfiguration().setupMongo(); try { GridFS gridfs = spec.connectionConfiguration().setupGridFS(mongo); DBCursor cursor = createCursor(gridfs); long size = 0; while (cursor.hasNext()) { GridFSDBFile file = (GridFSDBFile) cursor.next(); size += file.getLength(); } return size; } finally { mongo.close(); } }
@Override public MutableBlobMetadata apply(GridFSDBFile input) { MutableBlobMetadata metadata = new MutableBlobMetadataImpl(); MutableContentMetadata contentMetadata = metadata.getContentMetadata(); String contentType = input.getContentType(); if (contentType != null) { contentMetadata.setContentType(contentType); } contentMetadata.setContentLength(input.getLength()); metadata.setETag(input.getMD5()); metadata.setLastModified(input.getUploadDate()); metadata.setName(input.getFilename()); metadata.getUserMetadata().putAll(input.getMetaData().toMap()); // TODO: support populating metadata.getContentMetadata().setContentMD5() return metadata; } }
exchange.getIn().setHeader(GridFsEndpoint.GRIDFS_METADATA, JSON.serialize(file.getMetaData())); exchange.getIn().setHeader(Exchange.FILE_CONTENT_TYPE, file.getContentType()); exchange.getIn().setHeader(Exchange.FILE_LENGTH, file.getLength()); exchange.getIn().setHeader(Exchange.FILE_LAST_MODIFIED, file.getUploadDate()); exchange.getIn().setBody(file.getInputStream(), InputStream.class);