有没有办法使用 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++ 驱动程序对块进行手动迭代来完成。您必须找出哪些块包含此范围的数据,而不是读取它们并将获得的数据合并在一起...
我需要使用 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++ 驱动程序对块进行手动迭代来完成。您必须找出哪些块包含此范围的数据,而不是读取它们并将获得的数据合并在一起...