【发布时间】:2019-06-05 15:23:07
【问题描述】:
我正在尝试使用 Java 在云中实现重复数据删除程序。
我不确定如何继续实施。
首先,我想对文件大小、日期和文件名进行简单的文件比较。但是,这是无效的,因为文件可能具有相同的内容但名称不同。
我决定了一个简单的算法,它是 文件上传 -> 文件分块 -> Rabin-karp hashing -> 判断是否可以上传文件。
这样会好还是有什么改进?
我在哪里可以找到更多关于这方面的信息?我曾尝试在互联网上四处寻找,但找不到任何东西。其中大部分只是分解为某些实现,但没有解释或文件分块或 Rabin-karp 散列的详细信息。
我想知道关于这个程序我应该研究哪些 Java 库。
【问题讨论】:
-
文件有多大?您是否明确需要对块进行分块和散列?为什么一个简单的文件哈希不够用,例如
DigestInputStream? -
现在,我想用小文件进行测试,比如比较上传的 pdf 文件与云数据库中的哈希值。这就是为什么我不太确定是否有必要对数据进行指纹识别。
-
如果不是指纹,什么是散列?真的不清楚你有什么实际问题。
-
我只是不太确定如何在云存储中实现重复数据删除,我不太确定是否将文件分成更小的字节并获取每个块的哈希值或我可以只获取文件的哈希值并与数据库中现有的哈希值进行比较,
-
你为什么不确定?换句话说,您认为这两种解决方案都有哪些问题?优点缺点?一个完整的文件哈希甚至校验和几乎总是就足够了——这就是为什么它们被用来验证文件下载。
标签: java hash duplicates