gpt4 book ai didi

用于大量文件的 Java 内容 API

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:25:58 25 4
gpt4 key购买 nike

有谁知道任何提供从磁盘处理大量文件(写入/读取)功能的 Java 库(开源)。我说的是 2-4 百万个文件(其中大部分是 pdf 和 ms 文档)。将所有文件存储在一个目录中不是一个好主意。我希望很多人已经这样做了,而不是重新发明轮子。

我正在寻找的功能1)能够从磁盘写入/读取文件2) 能够为新文件创建随机目录/子目录2) 提供版本/审计(可选)

我在看 JCR API,它看起来很有前途,但它从一个工作区开始,不确定当有很多节点时性能会如何。

最佳答案

编辑:JCP 确实看起来不错。我建议尝试一下,看看它在您的用例中的实际表现如何。

如果您在 Windows 上运行您的系统,并注意到在某个时候出现可怕的 n^2 性能下降,您可能正在运行由自动 8.3 文件名生成引起的性能下降。当然可以disable 8.3 filename generation ,但正如您所指出的,将大量文件存储在一个目录中仍然不是一个好主意。

我见过的处理大量文件的一种常见策略是为文件名的前 n 个字母创建目录。例如,document.pdf 将存储在 d/o/c/u/m/document.pdf 中。我不记得曾经在 Java 中看到过这样的库,但它看起来非常简单。如果需要,您可以创建一个数据库来存储查找表(将键映射到统一分布的随机文件名),这样您就不必每次启动都重建索引。如果您想获得自动重复数据删除的好处,您可以散列每个文件的内容并将该校验和用作文件名(但您还想添加一个校验,这样您就不会意外丢弃校验和与现有文件匹配的文件,即使尽管内容实际上不同)。

根据文件的大小,您还可以考虑将文件本身存储在数据库中——如果这样做,添加版本控制将变得微不足道,而且您不必创建随机文件名,因为您可以使用自动生成的主键引用它们。

关于用于大量文件的 Java 内容 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5169472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com