我可以看到java mongo驱动程序无法从现有的gridFS文件中获取OutputStream
com.mongodb.gridfs.GridFSFile
我必须直接创建GridFSInputFile
或使用gridFs.createFile()
方法。
缺少java驱动程序还是限制gridfs?
除了创建新文件/删除旧文件外,您能建议任何解决方法吗?
谢谢
答案 0 :(得分:4)
GridFS不是MongoDB的核心功能,而是存储带有伴随元数据的二进制数据的惯例。您应该能够以通常的方式修改fs.chunks
集合中的任何文档,同时保持fs.files
中的相应文档不变。主要问题是重新计算MD5校验和,但AFAIK它不会在任何地方使用,只是一个“免费”奖金。无论如何,仍然可以进行仅附加修改(参见MD5 digest of a resumed download)。
因此,要附加到现有的GridFS文件,您需要在fs.files
中找到相应的文档。然后根据最后的块填充率(length
%chunkSize
== 0),您可以在fs.chunks
中重写chunkSize
中的最后一个块文档,和/或只是添加新的具有递增n
字段的块。接下来更新length
中的fs.files
以及可能的其他元数据。