Java 类com.mongodb.gridfs.GridFSDBFile 实例源码
项目:SixBox
文件:DownloadMultiFile.java
public String execute() throws IOException {
String[] fids = fid.split(",");
File[] files = new File[fids.length];
String username = (String) httpSession.get("username");
System.out.println("fids: " + Arrays.toString(fids));
for (int i = 0; i < files.length; i++) {
GridFSDBFile gridFSDBFile = boxService.download(fids[i]);
files[i] = new File(gridFSDBFile.getFilename());
gridFSDBFile.writeTo(files[i]);
}
filename = "/tmp/download.zip";
ZipFileUtil.compressFiles2Zip(files, filename);
inputStream = new FileInputStream(new File(filename));
filename = "download.zip";
return SUCCESS;
}
项目:whatsmars
文件:GridFSClient.java
private String isExistedImage(BundleEntry entry) {
GridFS gridFS = getInstance();
DBObject query = new BasicDBObject();
query.put("crc",entry.crc);
query.put("md5_source",entry.md5);
GridFSDBFile _current = gridFS.findOne(query);
//根据MD5值查询,检测是否存在
if(_current == null) {
return null;
}
String format = (String)_current.get("format");
if(format.startsWith(".")) {
return _current.getFilename() + format;
}
return _current.getFilename() + "." + format;
}
项目:kanbanboard
文件:FileServiceImpl.java
@Override
public GridFSDBFile getFile(String boardId, String fileId) throws FileNotFoundException {
User user = getAuthorizedUser();
Board board = boardRepository.findOne(boardId);
if(!user.hasRole(UserRole.ADMIN) && !board.getOwner().equals(user) && !board.getUsers().contains(user)) {
log.warn("User {} has no rights on board {}", user.getUsername(), boardId);
throw new AccessDeniedException("User does not have rights to access this board");
}
FSFile file = filesRepository.findOne(fileId);
if ( file == null ) {
log.debug("No File with given ID " + fileId + " found.");
throw new FileNotFoundException();
}
return fileStore.read(file);
}
项目:Rapture
文件:GridFSBlobHandler.java
@Override
public Boolean storeBlob(CallingContext context, String docPath, InputStream newContent, Boolean append) {
GridFS gridFS = getGridFS();
GridFSInputFile file;
if (!append) {
gridFS.remove(docPath);
file = createNewFile(docPath, newContent);
} else {
GridFSDBFile existing = gridFS.findOne(docPath);
if (existing != null) {
try {
file = updateExisting(context, docPath, newContent, gridFS, existing);
} catch (IOException e) {
file = null;
log.error(String.format("Error while appending to docPath %s: %s", docPath, ExceptionToString.format(e)));
}
} else {
file = createNewFile(docPath, newContent);
}
}
return file != null;
}
项目:Rapture
文件:GridFSBlobHandler.java
@Override
public InputStream getBlob(CallingContext context, String docPath) {
GridFS gridFS = getGridFS();
String lockKey = createLockKey(gridFS, docPath);
LockHandle lockHandle = grabLock(context, lockKey);
InputStream retVal = null;
try {
GridFSDBFile file = gridFS.findOne(docPath);
if (file != null) {
retVal = file.getInputStream();
}
} finally {
releaseLock(context, lockKey, lockHandle);
}
return retVal;
}
项目:site
文件:AssetApiController.java
@RequestMapping(method = POST)
@PreAuthorize("isAuthenticated()")
@ResponseBody
@ResponseStatus(CREATED)
public String create(
@RequestParam("assetData") final MultipartFile assetData
) throws IOException {
// Check duplicates
final GridFSDBFile file = this.gridFs.findOne(Query.query(Criteria.where("filename").is(assetData.getOriginalFilename())));
if (file != null) {
throw new DataIntegrityViolationException(String.format("Asset with name '%s' already exists", assetData.getOriginalFilename()));
} else {
try (InputStream usedStream = TikaInputStream.get(assetData.getInputStream())) {
MediaType mediaType = null;
try {
mediaType = MediaType.parse(tika.detect(usedStream, assetData.getOriginalFilename()));
} catch (IOException e) {
log.warn("Could not detect content type", e);
}
this.gridFs.store(assetData.getInputStream(), assetData.getOriginalFilename(), Optional.ofNullable(mediaType).map(MediaType::toString).orElse(null));
return assetData.getOriginalFilename();
}
}
}
项目:site
文件:AssetApiController.java
@RequestMapping({"/{filename:.+}"})
public void get(
@PathVariable final String filename,
final HttpServletRequest request,
final HttpServletResponse response
) throws IOException {
final GridFSDBFile file = this.gridFs.findOne(Query.query(Criteria.where("filename").is(filename)));
if (file == null) {
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
} else {
final int cacheForDays = 365;
response.setHeader("Content-Type", file.getContentType());
response.setHeader("Content-Disposition", String.format("inline; filename=\"%s\"", file.getFilename()));
response.setHeader("Expires", now(of("UTC")).plusDays(cacheForDays).format(RFC_1123_DATE_TIME));
response.setHeader("Cache-Control", String.format("max-age=%d, %s", TimeUnit.DAYS.toSeconds(cacheForDays), "public"));
file.writeTo(response.getOutputStream());
response.flushBuffer();
}
}
项目:site
文件:AssetApiControllerTest.java
@Test
public void createShouldThrowException() throws Exception {
final MockMultipartFile multipartFile = new MockMultipartFile("assetData", this.getClass().getResourceAsStream("/eu/euregjug/site/assets/asset.png"));
when(this.gridFsTemplate.findOne(any(Query.class))).thenReturn(mock(GridFSDBFile.class));
mvc
.perform(
fileUpload("/api/assets")
.file(multipartFile)
)
.andExpect(status().isConflict())
.andExpect(content().string(""));
verify(this.gridFsTemplate).findOne(any(Query.class));
verifyNoMoreInteractions(this.gridFsTemplate);
}
项目:geeCommerce-Java-Shop-Software-and-PIM
文件:DefaultMediaAssetHelper.java
@Override
public Id createPreviewPdfFile(GridFSDBFile file) {
for (DocumentConverter converter : getConverters()) {
if (converter.canConvert(file.getContentType())) {
ByteArrayOutputStream stream = converter.convert(file.getInputStream());
if (stream == null)
return null;
Id id = app.nextId();
createGridFsFile(id, new ByteArrayInputStream(stream.toByteArray()), "preview_" + file.getFilename(),
"application/pdf");
return id;
}
}
return null;
}
项目:geeCommerce-Java-Shop-Software-and-PIM
文件:DefaultMediaAssetHelper.java
@Override
public void createPreview(MediaAssetFile mediaAssetFile, GridFSDBFile file) {
if (file.getContentType().contains("image")) {
mediaAssetFile.setPreviewImageId(mediaAssetFile.getId());
mediaAssetFile.setPreviewDocumentMimeType(mediaAssetFile.getMimeType());
} else if (file.getContentType().contains("pdf")) {
mediaAssetFile.setPreviewDocId(mediaAssetFile.getId());
mediaAssetFile.setPreviewDocumentMimeType("aplication/pdf");
mediaAssetFile.setPreviewImageId(createPreviewImage(file));
mediaAssetFile.setPreviewDocumentMimeType("image/png");
} else {
Id docId = createPreviewPdfFile(file);
if (docId != null) {
mediaAssetFile.setPreviewDocId(docId);
mediaAssetFile.setPreviewDocumentMimeType("aplication/pdf");
Id imgId = createPreviewImage(mediaAssetService.getGridFsFile(docId));
if (imgId != null) {
mediaAssetFile.setPreviewImageId(imgId);
mediaAssetFile.setPreviewDocumentMimeType("image/png");
}
}
}
}
项目:geeCommerce-Java-Shop-Software-and-PIM
文件:DefaultMediaAssetService.java
@Override
public MediaAsset update(Id mediaAssetId, InputStream inputStream, String filename) {
String basename = FilenameUtils.getBaseName(filename);
String extension = FilenameUtils.getExtension(filename);
filename = Strings.slugify2(basename) + "." + extension;
String mimeType = getMimeType(filename);
MediaAssetFile mediaAssetFile = app.model(MediaAssetFile.class);
mediaAssetFile.setId(app.nextId());
mediaAssetFile.setMediaAssetId(mediaAssetId);
mediaAssetFile.setName(filename);
mediaAssetFile.setMimeType(mimeType);
mediaAssetFile.setActive(false);
mediaAssetFile
.setSize(createGridFsFile(mediaAssetFile.getId(), inputStream, filename, mediaAssetFile.getMimeType()));
GridFSDBFile file = getGridFsFile(mediaAssetFile.getId());
mediaAssetFile.setMetadata(importMetadata(file.getInputStream()));
mediaAssetHelper.createPreview(mediaAssetFile, file);
mediaAssetFiles.add(mediaAssetFile);
return mediaAssets.findById(MediaAsset.class, mediaAssetId);
}
项目:selenium-screenshot-watcher
文件:ReviewScreenshots.java
@Path("/validate")
@POST
public void validate(@PathParam("baseScreenshotId") String baseScreenshotId,
@PathParam("newScreenshotId") String newScreenshotId) {
logger.info(String.format("Validating: baseScreenshotId: '%s', newScreenshotId: ''%s",
baseScreenshotId, newScreenshotId));
String diffImageFileName = String.format("%s|%s|%s", baseScreenshotId, newScreenshotId, "-differences");
ObjectId newBaseScreenshotId = new ObjectId(newScreenshotId);
// pull the diff image from the DB, mark the field for processed screenshots to true
BasicDBObject diffImageQuery = new BasicDBObject();
diffImageQuery.put("filename", diffImageFileName);
GridFSDBFile diffFile = GFS_DIFF_PHOTOS.find(diffImageQuery).iterator().next();
diffFile.put("screenshotsHaveBeenReviewed", true);
diffFile.save();
// update the image id of the base screenshot with the id of the new screenshot
BasicDBObject baseQuery = new BasicDBObject();
baseQuery.put("imageId", new ObjectId(baseScreenshotId));
DBObject baseObject = BASE_IMAGES.find(baseQuery).next();
baseObject.put("imageId", newBaseScreenshotId);
BASE_IMAGES.save(baseObject);
}
项目:selenium-screenshot-watcher
文件:RetrieveScreenshot.java
@GET
@Produces("image/png")
public Response getScreenshotFromDb(@PathParam("collection") String collection, @PathParam("_id") String imgId,
@Context Request request) {
EndpointUtil.printClientInfo(request);
BasicDBObject screenshotQuery = new BasicDBObject();
screenshotQuery.put("_id", new ObjectId(imgId));
GridFSDBFile screenshotFound = null;
switch (collection.toLowerCase()) {
case "photo":
screenshotFound = GFS_PHOTO.findOne(screenshotQuery);
break;
case "diff_photos":
screenshotFound = GFS_DIFF_PHOTOS.findOne(screenshotQuery);
break;
}
return Response.ok().entity(screenshotFound.getInputStream()).build();
}
项目:beam
文件:MongoDbGridFSIO.java
@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();
}
}
项目:Wiab.pro
文件:MongoDbStore.java
@Override
public AttachmentData getAttachment(AttachmentId attachmentId) {
final GridFSDBFile attachment = getAttachmentGrid().findOne(attachmentId.serialise());
if (attachment == null) {
return null;
} else {
return new AttachmentData() {
@Override
public InputStream getInputStream() throws IOException {
return attachment.getInputStream();
}
@Override
public long getSize() {
return attachment.getLength();
}
};
}
}
项目:ws_hcm
文件:ProfileController.java
@RequestMapping(value = "/getPhoto/{code}", method = RequestMethod.GET)
public @ResponseBody
ResponseEntity<byte[]> getCodableDTO(@PathVariable("code") String code) {
System.out.println("finding getCodableDTO: code: " + code);
try {
//List<GridFSDBFile> result = gridFsTemplate.find(new Query().addCriteria(Criteria.where("filename").is(code)));
GridFSDBFile gridFsFile = gridFsTemplate.findOne(new Query().addCriteria(Criteria.where("_id").is(code)));
final HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_JPEG);
return new ResponseEntity<>(IOUtils.toByteArray(gridFsFile.getInputStream()), headers, HttpStatus.CREATED);
} catch (Exception e) {
System.out.println("eeeeeeeey get photo " + e);
return null;
}
}
项目:ws_hcm
文件:ProfileController.java
@RequestMapping(value = "/getPhoto/small/{code}", method = RequestMethod.GET)
public @ResponseBody
ResponseEntity<byte[]> getCodableDTOSmall(@PathVariable("code") String code) {
System.out.println("finding getCodableDTO: code: " + code);
try {
GridFSDBFile gridFsFile = gridFsTemplate.findOne(new Query().addCriteria(Criteria.where("_id").is(code)));
//GridFSDBFile gridFsFile = gridFsTemplate.findOne(new Query().addCriteria(Criteria.where("metadata.size").is("small").and("metadata.parent").is(code)));
final HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_JPEG);
return new ResponseEntity<>(IOUtils.toByteArray(gridFsFile.getInputStream()), headers, HttpStatus.CREATED);
} catch (Exception e) {
System.out.println("eeeeeeeey get photo " + e);
return null;
}
}
项目:ws_hcm
文件:ClientController.java
@RequestMapping(value = "/getPhoto/{code}", method = RequestMethod.GET)
public @ResponseBody
ResponseEntity<byte[]> getCodableDTO(@PathVariable("code") String code) {
System.out.println("finding getCodableDTO: code: " + code);
try {
//List<GridFSDBFile> result = gridFsTemplate.find(new Query().addCriteria(Criteria.where("filename").is(code)));
GridFSDBFile gridFsFile = gridFsTemplate.findOne(new Query().addCriteria(Criteria.where("_id").is(code)));
final HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_JPEG);
return new ResponseEntity<>(IOUtils.toByteArray(gridFsFile.getInputStream()), headers, HttpStatus.CREATED);
} catch (Exception e) {
System.out.println("eeeeeeeey get photo " + e);
return null;
}
}
项目:metadatamanagement
文件:FileResource.java
/**
* Download a file from the GridFS / MongoDB by a given filename.
*/
@RequestMapping(value = "/files/**")
public ResponseEntity<?> downloadFile(HttpServletRequest request) {
String completePath =
(String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
String fileName = completePath.replaceFirst("/public/files", "");
// find file in grid fs / mongo db
GridFSDBFile gridFsFile = this.fileService.findFile(fileName);
if (gridFsFile == null) {
return ResponseEntity.notFound().build();
}
HttpHeaders headers = new HttpHeaders();
headers.set(HttpHeaders.CONTENT_DISPOSITION,
"filename=" + removeFolders(gridFsFile.getFilename()));
// Return Status 200 or 304 if not modified
return ResponseEntity.ok()
.headers(headers)
.contentLength(gridFsFile.getLength())
.cacheControl(CacheControl.maxAge(0, TimeUnit.MILLISECONDS).mustRevalidate()
.cachePrivate().cachePublic())
.eTag(String.valueOf(gridFsFile.getUploadDate().getTime()))
.lastModified(gridFsFile.getUploadDate().getTime())
.contentType(MediaType.parseMediaType(gridFsFile.getContentType()))
.body(new InputStreamResource(gridFsFile.getInputStream()));
}
项目:BLELocalization
文件:MongoService.java
private boolean readFile(GridFSDBFile dbFile, OutputStream os) throws IOException {
InputStream is = null;
try {
is = dbFile.getInputStream();
byte data[] = new byte[4096];
int len = 0;
while ((len = is.read(data, 0, data.length)) > 0) {
os.write(data, 0, len);
}
return true;
} finally {
if (is != null) {
is.close();
}
}
}
项目:BLELocalization
文件:MongoService.java
public void sendFile(String path, HttpServletResponse response) throws IOException {
GridFSDBFile file = getFile(path);
if (file == null) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, String.format("File %s does not exist", path));
} else {
String contentType = file.getContentType();
if (contentType != null) {
response.setContentType(contentType);
}
OutputStream os = null;
try {
readFile(file, os = response.getOutputStream());
} catch (Exception e) {
System.err.println("Send error: " + path);
} finally {
if (os != null) {
os.close();
}
}
}
}
项目:anhalytics-core
文件:MongoFileManager.java
public TEIFile nextTeiDocument() {
InputStream teiStream = null;
TEIFile tei = new TEIFile();
DBObject obj = cursor.next();
tei.setRepositoryDocId((String) obj.get("repositoryDocId"));
tei.setFileName(tei.getRepositoryDocId() + ".tei.xml");
tei.setDocumentType((String) obj.get("documentType"));
tei.setAnhalyticsId((String) obj.get("anhalyticsId"));
tei.setSource((String) obj.get("source"));
tei.setRepositoryDocVersion((String) obj.get("version"));
GridFSDBFile binaryfile = gfs.findOne(tei.getFileName());
tei.setFileType((String) binaryfile.getContentType());
indexFile++;
teiStream = binaryfile.getInputStream();
try {
tei.setTei(IOUtils.toString(teiStream));
teiStream.close();
} catch (IOException ex) {
logger.error(ex.getMessage(), ex.getCause());
}
return tei;
}
项目:anhalytics-core
文件:MongoFileManager.java
/**
* Updates already existing tei with new (more enriched one, fulltext..).
*/
public void updateTei(String newTei, String repositoryDocId, String collection) {
try {
GridFS gfs = new GridFS(db, collection);
GridFSDBFile gdf = gfs.findOne(repositoryDocId + ".tei.xml");
GridFSInputFile gfsNew = gfs.createFile(new ByteArrayInputStream(newTei.getBytes()), true);
gfsNew.put("uploadDate", gdf.getUploadDate());
gfsNew.setFilename(gdf.get("repositoryDocId") + ".tei.xml");
gfsNew.put("repositoryDocId", gdf.get("repositoryDocId"));
gfsNew.put("documentType", gdf.get("documentType"));
gfsNew.put("anhalyticsId", gdf.get("anhalyticsId"));
gfsNew.put("source", gdf.get("source"));
gfsNew.save();
gfs.remove(gdf);
} catch (Exception e) {
logger.error(e.getMessage(), e.getCause());
}
}
项目:anhalytics-core
文件:MongoFileManager.java
/**
* Check if the document has been already grobidified.
*/
public boolean isGrobidified(String repositoryDocId, String version) {
GridFS gfs = new GridFS(db, MongoCollectionsInterface.GROBID_TEIS);
BasicDBObject whereQuery = new BasicDBObject();
whereQuery.put("repositoryDocId", repositoryDocId);
whereQuery.put("version", version);
List<GridFSDBFile> fs = null;
boolean result = false;
fs = gfs.find(whereQuery);
if (fs.size() > 0) {
result = true;
} else {
result = false;
}
return result;
}
项目:anhalytics-core
文件:ProcessTest.java
@Test public void testFetchDocumentsByDate() throws ParserConfigurationException, IOException, InterruptedException {
System.out.println("Test harvesting..");
HarvestProperties.setOaiUrl("http://api.archives-ouvertes.fr/oai/hal");
OAIHarvester oaih = new OAIHarvester(mm);
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
//cal.add(Calendar.DATE, -1);
String date = dateFormat.format(cal.getTime());
Utilities.updateDates(date, date);
Runnable fooRunner = new MyRunnable(oaih, date);
Thread fooThread = new Thread(fooRunner);
fooThread.start();
Thread.sleep(60000);
fooThread.interrupt();
List<GridFSDBFile> f = (new GridFS(db, MongoManager.ADDITIONAL_TEIS)).find((DBObject)null);
assertTrue(f.size() > 1);
}
项目:site
文件:AssetApiController.java
@RequestMapping(method = POST)
@PreAuthorize("isAuthenticated()")
@ResponseBody
@ResponseStatus(CREATED)
public String create(
@RequestParam("assetData") final MultipartFile assetData
) throws IOException {
// Check duplicates
final GridFSDBFile file = this.gridFs.findOne(Query.query(Criteria.where("filename").is(assetData.getOriginalFilename())));
if (file != null) {
throw new DataIntegrityViolationException(String.format("Asset with name '%s' already exists", assetData.getOriginalFilename()));
} else {
try (InputStream usedStream = TikaInputStream.get(assetData.getInputStream())) {
MediaType mediaType = null;
try {
mediaType = MediaType.parse(tika.detect(usedStream, assetData.getOriginalFilename()));
} catch (IOException e) {
log.warn("Could not detect content type", e);
}
this.gridFs.store(assetData.getInputStream(), assetData.getOriginalFilename(), Optional.ofNullable(mediaType).map(MediaType::toString).orElse(null));
return assetData.getOriginalFilename();
}
}
}
项目:site
文件:AssetApiController.java
@RequestMapping({"/{filename:.+}"})
public void get(
@PathVariable final String filename,
final HttpServletRequest request,
final HttpServletResponse response
) throws IOException {
final GridFSDBFile file = this.gridFs.findOne(Query.query(Criteria.where("filename").is(filename)));
if (file == null) {
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
} else {
final int cacheForDays = 365;
response.setHeader("Content-Type", file.getContentType());
response.setHeader("Content-Disposition", String.format("inline; filename=\"%s\"", file.getFilename()));
response.setHeader("Expires", now(of("UTC")).plusDays(cacheForDays).format(RFC_1123_DATE_TIME));
response.setHeader("Cache-Control", String.format("max-age=%d, %s", TimeUnit.DAYS.toSeconds(cacheForDays), "public"));
file.writeTo(response.getOutputStream());
response.flushBuffer();
}
}
项目:site
文件:AssetApiControllerTest.java
@Test
public void createShouldThrowException() throws Exception {
final MockMultipartFile multipartFile = new MockMultipartFile("assetData", this.getClass().getResourceAsStream("/eu/euregjug/site/assets/asset.png"));
when(this.gridFsTemplate.findOne(any(Query.class))).thenReturn(mock(GridFSDBFile.class));
mvc
.perform(
fileUpload("/api/assets")
.file(multipartFile)
)
.andExpect(status().isConflict())
.andExpect(content().string(""));
verify(this.gridFsTemplate).findOne(any(Query.class));
verifyNoMoreInteractions(this.gridFsTemplate);
}
项目:socialDocumentLibrary
文件:BookRepositoryMongoImpl.java
private List<Page> readPageSet(Map<Integer, Object> pageId,int pageStart,int pageEnd) {
List<Page> pages = new ArrayList<>();
GridFSDBFile gridFSDBFile;
for (Map.Entry<Integer, Object> integerStringEntry : pageId.entrySet()) {
if(integerStringEntry.getKey() >= pageStart && integerStringEntry.getKey() <= pageEnd){
gridFSDBFile = gridFsTemplate.findOne(createQueryFindById(integerStringEntry.getValue()));
pages.add(PageBuilder.newPageBuilder()
.bytes(gridFSDBFile2ByteArray(gridFSDBFile))
.fileName(gridFSDBFile.getFilename())
.id(gridFSDBFile.getId().toString())
.build());
}
}
return pages;
}
项目:LODVader
文件:SubjectsBucket.java
public TreeMap<String,SubjectsBucket> createAllBuckets(int distributionID) {
TreeMap<String,SubjectsBucket> result = new TreeMap<String,SubjectsBucket>();
// get collection
GridFS gfs = new GridFS(DBSuperClass2.getDBInstance(), SUBJECTS_BUCKET_COLLECTION_NAME);
// create query
BasicDBObject distribution = new BasicDBObject(DISTRIBUTION_ID, distributionID);
// make query
List<GridFSDBFile> buckets = gfs.find(distribution);
for (GridFSDBFile f : buckets) {
BloomFilterI filter = BloomFilterFactory.newBloomFilter();
try {
filter.readFrom(new BufferedInputStream(f.getInputStream()));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
result.put(f.get(FIRST_RESOURCE).toString(),new SubjectsBucket(filter, f.get(FIRST_RESOURCE).toString(), f.get(LAST_RESOURCE).toString()));
}
return result;
}
项目:openbd-core
文件:FindOne.java
/**
* Converts a GridFSDBFile object into a struct
*
* @param filefs
* @return
*/
protected cfStructData toStruct( GridFSDBFile filefs ){
cfStructData s = new cfStructData();
if ( filefs == null )
return s;
s.put("_id", new cfStringData(filefs.getId().toString()) );
s.put("chunkSize", new cfNumberData(filefs.getChunkSize()) );
s.put("length", new cfNumberData(filefs.getLength()) );
s.put("md5", new cfStringData(filefs.getMD5()) );
s.put("filename", new cfStringData(filefs.getFilename()) );
s.put("contentType", new cfStringData(filefs.getContentType()) );
s.put("uploadDate", new cfDateData(filefs.getUploadDate()) );
s.put("metadata", tagUtils.convertToCfData( filefs.getMetaData() ) );
return s;
}
项目:elasticsearch-repository-gridfs
文件:AbstractGridFsBlobContainer.java
@Override
public ImmutableMap<String, BlobMetaData> listBlobsByPrefix(@Nullable String blobNamePrefix) throws IOException {
ImmutableMap.Builder<String, BlobMetaData> blobsBuilder = ImmutableMap.builder();
List<GridFSDBFile> files;
if (blobNamePrefix != null) {
files = blobStore.gridFS().find(new BasicDBObject("filename", "/^" + buildKey(blobNamePrefix) + "/"));
} else {
files = blobStore.gridFS().find(new BasicDBObject("filename", "/^" + keyPath + "/"));
}
if (files != null && !files.isEmpty()) {
for (GridFSDBFile file : files) {
String name = file.getFilename().substring(keyPath.length());
blobsBuilder.put(name, new PlainBlobMetaData(name, file.getLength()));
}
}
return blobsBuilder.build();
}
项目:jackrabbit-dynamodb-store
文件:ReadBlobCommandGridFS.java
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;
}
项目:mod-image-resizer
文件:ResizerFSTest.java
@Test
public void testResizeStoreMongo() throws Exception {
JsonObject json = new JsonObject()
.putString("action", "resize")
.putString("src", SRC_IMG)
.putString("dest", "gridfs://fs")
.putNumber("width", 300);
eb.send(ADDRESS, json, new Handler<Message<JsonObject>>() {
public void handle(Message<JsonObject> reply) {
assertEquals("ok", reply.body().getString("status"));
String id = reply.body().getString("output");
GridFS fs = new GridFS(db, "fs");
GridFSDBFile f = fs.findOne((DBObject) JSON.parse("{\"_id\":\"" + id + "\"}"));
assertEquals("image/jpeg", f.getContentType());
testComplete();
}
});
}
项目:minicli
文件:MongoQuery.java
/**
* 保存文件到Mongo中
* @param file 文件对象
* @param id id_ 自定义序列
* @param metaData 元数据类型 Key Value
* @return
*/
public boolean concatGridFile(File file, Object id, DBObject metaData){
GridFSInputFile gridFSInputFile;
DBObject query = new BasicDBObject("_id", id);
GridFSDBFile gridFSDBFile = myFS.findOne(query);
if(gridFSDBFile!= null)
return false;
try {
gridFSInputFile = myFS.createFile(file);
gridFSInputFile.put("_id",id);
gridFSInputFile.setFilename(file.getName());
gridFSInputFile.setMetaData(metaData);
gridFSInputFile.setContentType(file.getName().substring(file.getName().lastIndexOf(".")));
gridFSInputFile.save();
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
项目:lumongo
文件:MongoConstants.java
public static byte[] readFileFromGridFS(GridFSDBFile file) {
InputStream is = file.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
byte bytes[] = new byte[BUFFER_SIZE];
int read = -1;
while ((read = is.read(bytes)) != -1) {
baos.write(bytes, 0, read);
}
return baos.toByteArray();
}
catch (Exception e) {
}
return null;
}
项目:atl-pd-data
文件:MongoData.java
/**
* @param imageName
* unique image name
* @return return an image mapped from the given name, null if one can't be loaded
*/
public static BufferedImage loadImage(final String imageName) throws IOException {
BufferedImage image = null;
final List<GridFSDBFile> files = images.find(imageName);
if (files != null && files.size() > 0) {
final Date uploadDate = files.get(0).getUploadDate();
final long timeDiff = Math.abs(uploadDate.getTime() - System.currentTimeMillis());
final long limitTimeDiff = 1000L * 60 * 60 * 24 * 30;
if (timeDiff > limitTimeDiff) {
final ObjectId id = (ObjectId)files.get(0).getId();
images.remove(id);
return null;
}
try(final InputStream inputStream = files.get(0).getInputStream()){
image = ImageIO.read(inputStream);
}
}
return image;
}
项目:incubator-wave
文件:MongoDbStore.java
private AttachmentData fileToAttachmentData(final GridFSDBFile attachmant) {
if (attachmant == null) {
return null;
} else {
return new AttachmentData() {
@Override
public InputStream getInputStream() throws IOException {
return attachmant.getInputStream();
}
@Override
public long getSize() {
return attachmant.getLength();
}
};
}
}
项目:jclouds-gridfs-blobstore
文件:GridFSBlobStore.java
@Override
public Blob getBlob(String container, String name, GetOptions options) {
GridFSIdentifier identifier = parseGridFSIdentifier(container);
if (!identifier.storeExists(mongo)) {
throw new ContainerNotFoundException(container, "could not find expected collections in database");
}
// TODO: support get options
if (options != null && (
options.getIfMatch() != null || options.getIfNoneMatch() != null ||
options.getIfModifiedSince() != null || options.getIfUnmodifiedSince() != null ||
!options.getRanges().isEmpty()
)) {
throw new IllegalArgumentException("Get options are not currently supported by this provider");
}
GridFS gridFS = identifier.connect(mongo); // TODO: cache
GridFSDBFile dbFile = gridFS.findOne(name);
if (dbFile == null) {
return null;
}
Blob blob = dbFileToBlob.apply(dbFile);
blob.getMetadata().setContainer(container);
return blob;
}
项目:jclouds-gridfs-blobstore
文件:DBFileToBlobMetadata.java
@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;
}