Identifique de forma única un archivo sin descargarlo

Así que el proyecto base es este...

Estoy tratando de escribir una aplicación de servidor que descargará y eliminará archivos de un sitio web.

La razón de esto es que puedo poner en la lista negra archivos particulares que se vuelven a cargar con nombres diferentes o proporcionar más descripciones sobre qué es realmente un archivo. Estos archivos son 0.1KB - 10.00MB y muchos. Si pudiera detectar dentro de una cifra aproximada razonable que un archivo ya tiene hash, podría devolver el hash en lugar de descargar el archivo completo y enviar los resultados.

Mi solución temporal es un complemento de JavaScript que lo hace en el acto. Esto provoca bloqueos temporales y es demasiado redundante para mi gusto. Mi objetivo es hacer que esto sea lo suficientemente bueno para compartirlo con el público; El método actual está lejos de serlo.

Mi conjunto de habilidades en programación es muy amplio, pero no es profesional ni pulido en ningún individuo, por lo que una biblioteca o ejemplos son muy apreciados.


Un recorte de mi código java-script es este...

    $('.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); 
         });
    });

Esto funciona muy bien, hace lo que necesita. Sin embargo, me gustaría tener un servidor que haga esto para que un archivo solo necesite un hash una sola vez.

preguntado el 12 de junio de 12 a las 17:06

Interesante. ¿Puede dar algunos ejemplos para que quede más claro qué es lo que está tratando de lograr? Además, comparta la solución de javascript o partes relevantes de la misma. Nos ayudará a entender mejor. -

Podría ser una mejor opción para publicar el código JavaScript en codereview.stackexchange.com para consejos sobre cómo hacer que no se congele. -

I am trying to write a server application that will download and hash files off of a website. ¿Antes de que se cargue el archivo? ¿Controlas las secuencias de comandos del lado del servidor? My temporary solution is a JavaScript add-on that does it on the spot. Esta es la forma clásica si controla el lado del servidor: ejecute un hash del lado del cliente y cárguelo antes de aceptar la carga. ¿Tal vez deberías continuar trabajando en eso? Creo que necesitas más detalles aquí. -

Jonathan, el sitio web, aunque reacio a decir es "tableros.4chan.org/f". En general, disfruto de los bucles y los flashes aleatorios. No disfruto de la pornografía ni de las subidas de trolls. Estoy haciendo un script de mono grasiento que permitirá la clasificación de tablas, la lista negra y el reformateo general. -

Gracias por su respuesta carrot-top. Creo que lo entendiste mal y eso se debió a mi falta de explicación. Espero que mi mensaje anterior explique un poco más. -

1 Respuestas

Suponiendo que su problema es que desea minimizar la cantidad de ancho de banda utilizado, podría limitar la cantidad de datos descargados a, digamos, los primeros 100 kb y construir su hash sobre esa parte. Otra información que podría usar es cualquier cosa enviada en el encabezado por el servidor, por ejemplo, el tamaño de archivo total y el tipo de archivo MIME.

Obviamente, esto no funcionará si los archivos que espera ver difieren en partes posteriores del archivo. Pero debería funcionar con imágenes u otros formatos de archivo comprimido.

Respondido el 12 de junio de 12 a las 18:06

Gracias por tu respuesta Nico. Esto suena sobre lo que estoy tratando de hacer. El tipo de archivo es archivos flash compilados. Si lo entiendo correctamente, hay una forma en que puedo descargar solo una sección del archivo, crear el hash y guardarlo junto con el hash de los archivos completos. ¿Esta pequeña sección podría identificar de forma única el archivo? - DeusAphor

+1 Sí, esto funciona en la mayoría de los casos. Utilizo el mismo método para identificar archivos JPEG duplicados. Lea los primeros 80 KB de archivos de varios megabytes. Mientras En teoria los primeros 80 KB de un archivo de 4 MB son iguales, es raro para datos binarios comprimidos. - el lobo

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.