4

我正在使用 HTML5 文件 API 构建文件上传器。我想确保根据它们包含的实际数据没有上传重复的文件。这意味着即使两个文件的名称不同或位于不同的文件夹中,它们也应被视为相同。

我考虑过使用 md5 计算哈希,但因为这一切都必须在客户端发生,使用 javascript,更大的文件将花费太长时间。当我说大时,我的意思是高达 5GB 的视频。

需要明确的是,这不必涉及校验和,我只想唯一标识文件。为此目的,散列可能有点矫枉过正,但这是首先想到的。

更新:我想我需要一个轻量级的指纹算法。我在 Wikipedia 上找到了Rabin作为示例,但我不知道如何在 javascript 中实现它。

4

1 回答 1

1

不存在捷径。如果您需要识别零歧义的重复文件,那么您必须阅读并比较文件的全部内容。

但是,如果您可以忍受某种程度的误报,那么您可能会采取一些策略。对于类似的问题,我计算给定文件块子集的 MD5 哈希(使用预定义的不变窗口)。

于 2013-03-22T11:05:59.727 回答