Pregunta

Tengo un conjunto de nodos geográficamente remotas con sistemas operativos heterogéneos que deben transferir archivos y actualizaciones de todo el uso de un programa Java que estoy escribiendo. En la actualidad tengo que enviar todo el archivo de nuevo si los cambios en los archivos. ¿Hay una manera de determinar las secciones de los archivos que son diferentes y sólo envían los (Tenga en cuenta que estos archivos no son necesariamente de texto, podrían ser cualquier formato). La única manera que se me ocurre es la de dividir el archivo en bloques, hash de los bloques y enviar los hashes de atrás del solicitante la cual solicita entonces sólo los bloques que necesita, pero para los pequeños bloques y archivos de gran tamaño se trata de una gran sobrecarga todo, hay una manera de enviar algún mensaje que describe mi archivo de tal manera que el mensaje singular puede ser analizada para proporcionar una lista de los bloques que deben transmitirse?

La mayoría de las funciones de digerir están diseñados de tal manera que un pequeño cambio en los resultados de los datos en un gran cambio en toda la salida de hash, que básicamente necesita el reverso de esta, que funciona en todos los sistemas operativos.

¿Fue útil?

Solución

Si entiendo bien su pregunta, que necesita para mantener archivos sincronizados en dos sistemas. Hay una herramienta llamada rsync que se pueden sincronizar dos archivos (o directorios enteros) que se envían solamente los cambios realizados en el archivo.

Es posible que también esté interesado en la Rsync algoritmo .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top