2011-06-08 55 views
3

我所看到的Java蒙戈驱动程序不提供能力得到OutputStream从现有GridFS的文件com.mongodb.gridfs.GridFSFile将数据添加到现有GridFS的文件

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

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

你能建议任何解决办法,除了创建新文件/删除旧的?

谢谢

回答

4

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

因此,要追加到现有的GridFS文件,您需要在fs.files中找到相应的文档。然后根据上一个块填充比率(lengthchunkSize == 0),您要么重写fs.chunks中最后一个块文档,并且/或者只需添加新块并添加n字段。接下来更新lengthfs.files以及可能的其他元数据。

+0

是的,听起来很容易,但我不明白他们为什么没有自己实现这个功能。可能有一些陷阱或其他限制 – user12384512 2011-06-09 13:11:16

相关问题