MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como obter um fluxo binário por GridFS ObjectId com Spring Data MongoDB


Eu tropecei nisso também. E estou realmente muito chocado que o GridFsTemplate tenha sido projetado assim... De qualquer forma, minha "solução" feia para isso até agora:
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);
}

Nota:Você tem que injetar o MongoDbFactory para isso funcionar...