我和我的团队被要求使用 Java 库支持的文件格式,该格式包含有关某些较大文件的各种元数据。事实上,当权者希望我们将大文件(可能 100MB)和其他相关文件(元数据、非破坏性编辑等)打包到一个捆绑的存档文件中。
对于一次性创作来说,这是一件轻而易举的事:只需将所有内容都放入一个 Zip 文件中。但我们希望能够不断更新元数据、非破坏性编辑等。我们不希望将整个 >100MB 的内容转储到一个临时目录,然后将所有内容压缩回来,只是为了在其中一个目录中添加一行元数据文件。
有一些项目(例如TrueVFS)通过声称将 zip 文件或其他存档文件格式抽象为文件系统,表面上听起来很理想。但仔细观察,我们获得的唯一就地更新功能似乎是简单地附加新文件,而不是实际更改或附加到单个文件。
我们需要一些介于 Zip 文件和关系数据库之间的文件格式。具有层次结构的东西会很棒。它必须有效地支持相当大的文件(超过 100MB),并允许随机访问以添加、删除和更改存档中的单个文件。我很惊讶找不到任何东西。有什么建议么?
PS 几年前我有过糟糕的经历,微软的复合文件格式被破坏了。我不知道像Apache POIFS这样的东西对于大文件是否可靠且高效。