4

如我所见,java mongo 驱动程序不提供OutputStream从现有 gridFS 文件中获取的功能com.mongodb.gridfs.GridFSFile

我必须GridFSInputFile直接创建或使用gridFs.createFile()方法。

是缺少 java 驱动程序还是 gridfs 的限制?

除了创建新文件/删除旧文件之外,您能否提出任何解决方法?

谢谢

4

1 回答 1

5

GridFS 不是 MongoDB 的核心功能,而是存储二进制数据和附带元数据的约定。您应该能够以fs.chunks通常的方式修改集合中的任何文档,同时保持相应文档的fs.files完整性。主要问题将是重新计算 MD5 校验和,但 AFAIK 它没有在任何地方使用,只是一个“免费”奖励。无论如何,仅附加修改仍然是可能的(请参阅恢复下载的 MD5 摘要)。

因此,要附加到现有的 GridFS 文件,您需要在fs.files. 然后根据最后一个块填充率(length% chunkSize== 0),您可以重写关于 的最后一个块文档fs.chunkschunkSize和/或简单地添加具有递增n字段的新块。下一次更新和可能length的其他元数据。fs.files

于 2011-06-08T15:08:05.563 回答