MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment obtenir un flux binaire par GridFS ObjectId avec Spring Data MongoDB

Je suis tombé dessus aussi. Et je suis en fait assez choqué que le GridFsTemplate ait été conçu comme ça... Quoi qu'il en soit, ma "solution" laide jusqu'à présent :

public GridFsResource download(String fileId) {
    GridFSFile file = gridFsTemplate.findOne(Query.query(Criteria.where("_id").is(fileId)));

    return new GridFsResource(file, getGridFs().openDownloadStream(file.getObjectId()));
}

private GridFSBucket getGridFs() {

    MongoDatabase db = mongoDbFactory.getDb();
    return GridFSBuckets.create(db);
}

Remarque :Vous devez injecter la MongoDbFactory pour que cela fonctionne...