无需下载即可唯一标识文件

时间:2012-06-12 16:57:49

标签: php javascript python

所以基础项目就是这个......

我正在尝试编写一个服务器应用程序,它将从网站下载和散列文件。

这样做的原因是我可以将以不同名称重新上传的特定文件列入黑名单,或者提供有关文件真实内容的进一步说明。这些文件是0.1KB - 10.00MB和许多。如果我能在合理的球场图中检测到文件已经被哈希,我可以返回哈希,而不是下载整个文件并发送结果。

我的临时解决方案是一个JavaScript插件,可以在现场完成。这导致临时冻结,并且对我来说太多余了。我的目标是使这个足够好,与公众分享;目前的方法远非如此。

我在编程方面的技能非常广泛,但在任何个人中都不专业或精致,因此高度赞赏图书馆或示例。


我的java脚本代码的剪辑是这个......

    $('.tablesorter tbody tr').each(function(index) {
        var href = 'http:' + $(this).find("td a:eq(0)").attr('href');
        var MD5  = "";
        $.get(href, function(data) {
            MD5 = calcMD5(data);
            $(".tablesorter tbody tr:eq("+index+") td:eq(3)").text(MD5); 
         });
    });

这很有效,做到了它需要的东西。但是,我想让服务器执行此操作,以便只需要对文件进行一次哈希处理。

1 个答案:

答案 0 :(得分:2)

假设您的问题是您希望最大限度地减少使用的带宽量,您可以限制下载的数据量,例如前100kb,并在该部分上构建哈希值。您可以使用的其他信息是服务器在标头中发送的任何信息,例如总文件大小和MIME文件类型。

显然,如果您希望查看的文件在文件后面的部分不同,这将不起作用。但它应该适用于图像或其他压缩文件格式。