创建查询以从文件 GRIDFS 中获取某些部分

问题描述

在我的 Spring Boot 应用程序中,我使用 GridFS 在我的数据库中存储大文件。为了找到某些文件,我对文件集合使用普通查询

GridFSFile file = gridFstemplate.findOne(Query.query(Criteria.where(ID).is(id)));

但是通过这种方法我得到了整个文件

我的问题是,如何在不将整个文件加载到内存中的情况下创建一些查询? 我存储的文件是书籍(pdf 格式),假设我想从某个页面获取内容而不将整本书加载到内存中。 我猜我将不得不使用块集合并对块执行一些操作,但我找不到如何做到这一点。

解决方法

GridFS 被描述为 here。驱动程序不提供用于检索文件部分的标准化 API,但您可以阅读该规范并构建您自己的查询来检索部分写入的块。

您的特定驱动程序可能提供部分文件检索功能,请查阅其文档。