【问题标题】:Append data to existing gridfs file将数据附加到现有的 gridfs 文件
【发布时间】:2011-06-08 14:17:15
【问题描述】:

正如我所见,java mongo 驱动程序不提供从现有 gridFS 文件 com.mongodb.gridfs.GridFSFile 获取 OutputStream 的功能

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

是缺少java驱动还是gridfs的限制?

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

谢谢

【问题讨论】:

    标签: java mongodb gridfs mongodb-java


    【解决方案1】:

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

    因此,要附加到现有的 GridFS 文件,您需要在 fs.files 中找到相应的文档。然后根据最后一个块填充率(length % chunkSize == 0),您可以根据chunkSize 重写fs.chunks 中的最后一个块文档,和/或简单地添加新的块并增加@987654329 @ 场地。下次更新 length 中的 fs.files 和可能的其他元数据。

    【讨论】:

    • 是的,听起来很简单,但我不明白他们为什么不自己实现这个功能。可能存在一些陷阱或其他限制
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多