java - spring boot 2.0.1 版本中的 GridFSDBFile

标签 java spring mongodb maven spring-boot

我正在尝试将 spring boot 1.5.7 迁移到其最新版本 realease 2.0.1。在旧版本中,我使用此语法来恢复文件。

GridFSDBFile gridFsdbFile = gridFsTemplate.findOne(new Query(Criteria.where("_id").is(fileId)));

你知道新版本会怎么做吗?我需要

file.setInputStream(gridFsdbFile.getInputStream());

太好了!

最佳答案

GridFSFile gridFsdbFile = gridFsTemplate.findOne(new Query(Criteria.where("_id").is(id)));

GridFSDownloadStream gridFSDownloadStream = gridFSBucket.openDownloadStream(gridFsdbFile.getObjectId());
GridFsResource gridFsResource = new GridFsResource(gridFsdbFile,gridFSDownloadStream );

然后

file.setInputStream(gridFsResource.getInputStream());

您可以像这样在 MongoConfiguration 中定义 gridFSBucket

@Bean public GridFSBucket getGridFSBuckets() {
MongoDatabase db = mongoDbFactory().getDb();
return GridFSBuckets.create(db);
}

关于java - spring boot 2.0.1 版本中的 GridFSDBFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49899136/

相关文章:

java - @PropertySource 是否可以用于带有 @Value 的属性?

java - Spring Security 忽略多个 HTTP 配置

java - Spring - 永远不会调用@Valid 验证

python - MongoDB shell 的 db.stats() 在 php 和 python 中

javascript - Mongoose - 保存时更新引用的文档

java - 远程网络驱动程序: using proxy in Chrome and Opera

java - 使用更新语句创建列

java - 如何使用Maven只签署三个jar并将它们推送到Maven Central?

java - 这段代码是否违反开闭原则?

node.js - Mongoose/NodeJS 定义保存文档的静态/方法