2011-06-08 38 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