有没有办法使用 mongocxx 驱动程序从 GridFS 集合的文件中下载任意范围?

Is there a way for downloading arbitrary ranges from a GridFS collection's file using the mongocxx driver?

我需要使用 GridFS 规范随机访问存储在 MongoDB 中的文件。似乎 C++ 驱动程序 (mongocxx) 没有提供执行此操作的接口。我可以从 mongocxx::gridfs::bucket 创建一个 mongocxx::gridfs::downloader 对象,但是我能找到的唯一 "lower level" 读取操作是

std::size_t read(std::uint8_t *buffer, std::size_t length)

我想念的是第三个参数std::size_t offset。我当前的解决方法是完全绕过 mongocxx::gridfs API,即查询块集合并手动创建所需的缓冲区。但实际上我想为此使用驱动程序的 API。

我在 mongocxx 驱动程序中是否有一个我没有看到的用例 API 或者我应该写一个功能请求?

仔细查看所有相关资源并在 mongodb user group 中讨论这个问题后,这个问题的答案是

不,目前还没有 API 使用 mongo C++ 驱动程序的 GridFS API 进行部分文件检索。

我已经在 MongoDB JIRA 系统中为它提交了 feature request

我相信可以通过 C++ 驱动程序对块进行手动迭代来完成。您必须找出哪些块包含此范围的数据,而不是读取它们并将获得的数据合并在一起...