java - 使用 Java 实现云中的重复数据删除
问题描述
我正在尝试使用 Java 在云中实现重复数据删除程序。
我不确定如何继续实施。
首先,我想对文件大小、日期和文件名进行简单的文件比较。但是,这是无效的,因为文件可能具有相同的内容但名称不同。
我决定了一个简单的算法,即文件上传 -> 文件分块 -> Rabin-karp 哈希 -> 确定是否可以上传文件。
这会很好还是有任何改进?
我在哪里可以找到更多关于这方面的信息?我曾尝试在互联网上四处寻找,但找不到任何东西。其中大部分只是分解为某些实现,但没有解释或有关文件分块或 Rabin-karp 散列的详细信息。
我想知道关于这个程序我应该研究哪些 Java 库。
解决方案
如果你陈述你的问题限制,那会更容易。假设如下:
- 最小的不可分割的数据单位是文件
- 文件相当小,可以放入内存中用于计算哈希
- 您的文件位于某个云存储桶或您可以将它们全部列出的地方。这也消除了相同的文件名。
您可能可以缩小问题的范围。
- 使用一些快速散列算法(如基本 CRC 校验和)遍历所有文件中的所有文件并构建映射。(可以很容易地并行化)。
- 过滤掉所有有冲突的文件。您可以轻松地忽略其余文件,出于所有实际目的,这些文件应该是相当合理的数据块。
- 使用加密哈希(或最坏的情况,匹配整个文件)运行剩余的文件子集并识别匹配项。
这可以根据基础数据进行细化。
但是,这就是我处理问题并给出其结构的方式;这个问题可以很容易地以并行方式划分和解决。请随意详细说明,以便我们能够找到一个好的解决方案。
推荐阅读
- c++ - 在 C++ 中执行程序时使用什么数据类型来存储中间计算?
- java - 使用 2 个不同的控制器方法调用模板 thymeleaf 表单
- php - PHP DomDocument 格式不正确
- java - 一个 WebView 中的多个 URL
- c# - 将 Rectangle 的区域调整为不同的大小
- android - 布局背景颜色在运行时消失
- shell - 如何结合 Unix 输入 + 输出重定向?
- azure - Azure 函数应用创建
- express - 错误:使用 Chai 和 Mocha 发送后无法设置标题
- html - 如何使用 PDFRreactor 构建具有复杂 html 和样式的 pdf 标题(左上角和右上角)?