byte[] data = new byte[1024]; try (InputStream stream = file.getInputStream()) { while ((nRead = stream.read(data, 0, data.length)) != -1) { buffer.write(data, 0, nRead); builder.field("_content_type", file.getContentType()); builder.field("_title", file.getFilename()); builder.field("_content", encodedContent); builder.endObject(); builder.field("filename", file.getFilename()); 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()); builder.startObject("metadata"); DBObject metadata = file.getMetaData(); if (metadata != null) { for (String key : metadata.keySet()) {
f.writeTo(f.getFilename()); return; md5.reset(); int read = 0; DigestInputStream is = new DigestInputStream(f.getInputStream(), md5); try { while (is.read() >= 0) {
GridFSDBFile file = grid.findOne(new ObjectId(objectId)); if (file != null) { logger.trace("Caught file: {} - {}", file.getId(), file.getFilename()); object = file; } else {
@Override public InputStream getInputStream() throws IOException { return resource.getInputStream(); } });
@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())); }
GridFSDBFile forig = file; if (usesAttribute) { file.put(endpoint.getFileAttributeName(), "processing"); DBObject q = BasicDBObjectBuilder.start("_id", file.getId()).append("camel-processed", null).get(); forig = (GridFSDBFile)endpoint.getFilesCollection().findAndModify(q, null, null, false, file, true, false); file = endpoint.getGridFs().findOne(new BasicDBObject("_id", file.getId())); 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); try { getProcessor().process(exchange); forig.put(endpoint.getFileAttributeName(), "done"); endpoint.getFilesCollection().save(forig); if (file.getUploadDate().compareTo(fromDate) > 0) { fromDate = file.getUploadDate(); dateModified = true;
GridFSDBFile file = endpoint.getGridFs().findOne(filename); if (file != null) { 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); } else { throw new FileNotFoundException("No GridFS file for " + filename);
InputStream is = f.getInputStream(); OutputStream os = response.getOutputStream(); try{ int fileLength = (int)f.getLength(); String ext = FileTypeUtil.getExtention(filename); response.setContentType(FileTypeUtil.getContentType(ext)); response.setContentLength(fileLength); if(contentMD5){ response.setHeader("Content-MD5", f.getMD5()); DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH); df.setTimeZone(TimeZone.getTimeZone("GMT")); Date uploadDate = f.getUploadDate(); String lastModified = df.format(uploadDate); if(modifiedSince != null){ response.setDateHeader("Expires", 0); f.writeTo(os); is.skip(begin); int read = -1; int bufferSize = (int)f.getChunkSize(); byte[] buffer = new byte[bufferSize]; int remain = contentLength;
@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"); } } }
@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; } }
@Override public Artifact getArtifact(DBKey dbKey, String objectID) { Artifact artifact = null; GridFS gfs = getGridFS(dbKey); BasicDBObject query = new BasicDBObject(); query.put(ID_FIELD_NAME, new ObjectId(objectID)); GridFSDBFile file = gfs.findOne(query); if (file != null) { artifact = new Artifact(file.getInputStream(), file.getContentType()); } return artifact; }
private DocumentFile<MongoType> getDocumentFile(DocumentID<MongoType> id, String filename) { DBObject query = QueryBuilder.start(DOCUMENT_KEY).is(id.getID()).and(FILENAME_KEY).is(filename).get(); GridFSDBFile file = documentfs.findOne(query); if(file==null) { return null; } DocumentFile<MongoType> df = new DocumentFile<MongoType>(id, file.getFilename(), file.getInputStream(), (String)file.get(STAGE_KEY), file.getUploadDate()); if(file.containsField(MIMETYPE_KEY)) { df.setMimetype((String) file.get(MIMETYPE_KEY)); } if(file.containsField(ENCODING_KEY)) { df.setEncoding((String) file.get(ENCODING_KEY)); } return df; }
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; });
@Override public ISObject get(String key) { GridFSDBFile file = findFile(key); if (null == file) { // try legacy file = findFile(BlobStorageService.getLegacyKey(key)); if (null != file) { Logger.warn("You have legacy blob data, please consider migrating them to new version"); } } if (null == file) { return null; } ISObject sobj = SObject.of(key, IO.readContent(file.getInputStream())); String fn = file.getFilename(); if (S.empty(fn)) { fn = S.random(8); } String type = file.getContentType(); if (S.empty(type)) { type = "application/octet-stream"; } return sobj.setAttribute(Blob.FILENAME, fn) .setAttribute(Blob.CONTENT_TYPE, type); }
.getMetamodel(m.getPersistenceUnit()); String id = ((AbstractAttribute) m.getIdAttribute()).getJPAColumnName(); Object rowKey = ((DBObject) outputFile.get(MongoDBUtils.METADATA)).get(id); Class<?> rowKeyValueClass = rowKey.getClass(); Class<?> idClass = m.getIdAttribute().getJavaType(); InputStream is = outputFile.getInputStream(); try
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; } }
@GET @Path("/download/{id}/") @Produces("application/epub") public Response getImagefile(@PathParam("content") String content, @PathParam("id") String imageID) throws UnknownHostException, IOException { GridFSDBFile findImage; DB db = getConnection().getDB(content); GridFS gfsImage = new GridFS(db, "image"); findImage = gfsImage.findOne(new ObjectId(imageID)); String filename = findImage.getFilename(); ResponseBuilder response = Response.ok((Object) findImage.getInputStream()); response.header("Content-Disposition", "attachment; filename=" + filename+".jpg"); return response.build(); }
@Override public long getSize() { return attachmant.getLength(); } };
new GridFSSplit( inputURI, (ObjectId) file.getId(), (int) file.getChunkSize(), file.getLength())); for (int chunk = 0; chunk < file.numChunks(); ++chunk) { splits.add( new GridFSSplit( inputURI, (ObjectId) file.getId(), (int) file.getChunkSize(), file.getLength(), chunk));
/** * Writes the file's data to a file on disk. * * @param filename the file name on disk * @return number of bytes written * @throws IOException if there are problems writing to the file */ public long writeTo(final String filename) throws IOException { return writeTo(new File(filename)); }