如我所见,java mongo 驱动程序不提供OutputStream
从现有 gridFS 文件中获取的功能com.mongodb.gridfs.GridFSFile
我必须GridFSInputFile
直接创建或使用gridFs.createFile()
方法。
是缺少 java 驱动程序还是 gridfs 的限制?
除了创建新文件/删除旧文件之外,您能否提出任何解决方法?
谢谢
如我所见,java mongo 驱动程序不提供OutputStream
从现有 gridFS 文件中获取的功能com.mongodb.gridfs.GridFSFile
我必须GridFSInputFile
直接创建或使用gridFs.createFile()
方法。
是缺少 java 驱动程序还是 gridfs 的限制?
除了创建新文件/删除旧文件之外,您能否提出任何解决方法?
谢谢
GridFS 不是 MongoDB 的核心功能,而是存储二进制数据和附带元数据的约定。您应该能够以fs.chunks
通常的方式修改集合中的任何文档,同时保持相应文档的fs.files
完整性。主要问题将是重新计算 MD5 校验和,但 AFAIK 它没有在任何地方使用,只是一个“免费”奖励。无论如何,仅附加修改仍然是可能的(请参阅恢复下载的 MD5 摘要)。
因此,要附加到现有的 GridFS 文件,您需要在fs.files
. 然后根据最后一个块填充率(length
% chunkSize
== 0),您可以重写关于 的最后一个块文档fs.chunks
,chunkSize
和/或简单地添加具有递增n
字段的新块。下一次更新和可能length
的其他元数据。fs.files