我所看到的Java蒙戈驱动程序不提供能力得到OutputStream
从现有GridFS的文件com.mongodb.gridfs.GridFSFile
将数据添加到现有GridFS的文件
我直接创建GridFSInputFile
或使用gridFs.createFile()
方法。
是缺少java驱动还是限制gridfs?
你能建议任何解决办法,除了创建新文件/删除旧的?
谢谢
我所看到的Java蒙戈驱动程序不提供能力得到OutputStream
从现有GridFS的文件com.mongodb.gridfs.GridFSFile
将数据添加到现有GridFS的文件
我直接创建GridFSInputFile
或使用gridFs.createFile()
方法。
是缺少java驱动还是限制gridfs?
你能建议任何解决办法,除了创建新文件/删除旧的?
谢谢
GridFS的不是MongoDB中的核心功能,但存储二进制数据伴随元数据的约定。您应该能够以通常的方式修改fs.chunks
集合中的任何文档,同时保持完整的fs.files
中的相应文档。主要问题将是重新计算MD5校验和,但AFAIK不会在任何地方使用,只是一个“免费”奖金。无论如何,它仍然可以进行仅附加修改(请参阅MD5 digest of a resumed download)。
因此,要追加到现有的GridFS文件,您需要在fs.files
中找到相应的文档。然后根据上一个块填充比率(length
%chunkSize
== 0),您要么重写fs.chunks
中最后一个块文档,并且/或者只需添加新块并添加n
字段。接下来更新length
的fs.files
以及可能的其他元数据。
是的,听起来很容易,但我不明白他们为什么没有自己实现这个功能。可能有一些陷阱或其他限制 – user12384512 2011-06-09 13:11:16