将数据附加到现有gridfs文件

时间:2011-06-08 14:17:16

标签: java mongodb gridfs mongodb-java

我可以看到java mongo驱动程序无法从现有的gridFS文件中获取OutputStream com.mongodb.gridfs.GridFSFile

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

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

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

谢谢

1 个答案:

答案 0 :(得分:4)

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

因此,要附加到现有的GridFS文件,您需要在fs.files中找到相应的文档。然后根据最后的块填充率(lengthchunkSize == 0),您可以在fs.chunks中重写chunkSize中的最后一个块文档,和/或只是添加新的具有递增n字段的块。接下来更新length中的fs.files以及可能的其他元数据。