将数据追加到现有 gridfs 文件

use*_*512 4 java mongodb gridfs mongodb-java

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

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

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

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

谢谢

pin*_*33n 5

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

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