Project

General

Profile

« Previous | Next » 

Revision 42170

fixed download into gridfs

View differences:

GridFSObjectStore.java
11 11
import java.util.stream.Collectors;
12 12

  
13 13
import com.mongodb.BasicDBObject;
14
import com.mongodb.DBCursor;
14 15
import com.mongodb.DBObject;
15 16
import com.mongodb.gridfs.GridFS;
16 17
import com.mongodb.gridfs.GridFSDBFile;
......
178 179
	@Override
179 180
	public List<ObjectStoreFile> retrieveObjects(final int page, final int size) {
180 181
		final Iterator<DBObject> listObjects =
181
				collection.getFileList(new BasicDBObject()).sort(new BasicDBObject("_id", 1)).skip(page * size).limit(size).iterator();
182
				collection.getFileList(new BasicDBObject()).sort(new BasicDBObject("_id", 1)).skip(page).limit(size).iterator();
182 183
		return DnetStreamSupport.generateStreamFromIterator(listObjects)
183 184
				.map(it -> ObjectStoreFileUtility.build((GridFSDBFile) it, baseURI, id))
184 185
				.collect(Collectors.toList());
......
287 288
	 * @param objectId the object id
288 289
	 * @return true, if successful
289 290
	 */
290
	private boolean alreadyExist(final String objectId) {
291
		BasicDBObject query = new BasicDBObject("_id", objectId);
291
	@Override
292
	public boolean alreadyExist(final String objectId) {
293
		BasicDBObject query = new BasicDBObject("filename", objectId);
292 294
		List<GridFSDBFile> file = collection.find(query);
293 295
		return file != null && file.size() > 0;
294 296
	}
295 297

  
296 298
	@Override
297 299
	public ObjectStoreFile deliverObject(final String objectId) throws ObjectStoreServiceException {
298
		BasicDBObject query = new BasicDBObject("_id", objectId);
299
		List<GridFSDBFile> file = collection.find(query);
300
		BasicDBObject query = new BasicDBObject("filename", objectId);
301
		final DBCursor fileList = collection.getFileList(query);
300 302

  
301
		checkSingleItem(objectId, file);
302

  
303
		return ObjectStoreFileUtility.build(file.get(0), baseURI, id);
304

  
303
		if (fileList.hasNext()) return ObjectStoreFileUtility.build((GridFSDBFile) fileList.next(), baseURI, id);
304
		return null;
305 305
	}
306 306

  
307 307
	/**
......
323 323
	 */
324 324
	@Override
325 325
	public InputStream deliverStream(final String objectId) throws ObjectStoreFileNotFoundException {
326
		BasicDBObject query = new BasicDBObject("_id", objectId);
326
		BasicDBObject query = new BasicDBObject("filename", objectId);
327 327
		List<GridFSDBFile> file = collection.find(query);
328 328
		checkSingleItem(objectId, file);
329 329
		return file.get(0).getInputStream();
......
358 358
		if (record.getInputStream() == null) {
359 359
			throw new ObjectStoreServiceException("missing inputstream on record " + record.getFileMetadata().getObjectID());
360 360
		}
361
		GridFSInputFile currentFile = collection.createFile(record.getInputStream());
362
		currentFile.setId(record.getFileMetadata().getObjectID());
363
		currentFile.setFilename(record.getFileMetadata().getObjectID());
361

  
362
		GridFSInputFile currentFile = collection.createFile(record.getInputStream(), record.getFileMetadata().getObjectID());
363
		//		collection.createFile(record.getInputStream());
364
		//		currentFile.setId(record.getFileMetadata().getObjectID());
365
		//		currentFile.setFilename(record.getFileMetadata().getObjectID());
364 366
		BasicDBObject metadata = new BasicDBObject();
365 367
		metadata.put("id", record.getFileMetadata().getObjectID());
366 368
		metadata.put("mime", record.getFileMetadata().getMimeType());
......
375 377
			currentFile.save();
376 378

  
377 379
		} catch (Exception e) {
378
			log.error(e);
379 380
			throw new ObjectStoreServiceException(e);
380 381
		} finally {
381 382
			try {
......
394 395
	 */
395 396
	@Override
396 397
	public boolean existIDStartsWith(final String startId) {
397
		BasicDBObject query = new BasicDBObject("_id", startId);
398
		BasicDBObject query = new BasicDBObject("id", startId);
398 399
		List<GridFSDBFile> file = collection.find(query);
399 400
		return file.size() > 0;
400 401
	}

Also available in: Unified diff