Domanda

Ho un insieme di nodi geograficamente remoti con sistemi operativi eterogenei, che hanno bisogno di trasferire file e aggiornamenti in tutto utilizzando un programma Java che sto scrivendo. Al momento ho bisogno di inviare di nuovo l'intero file se il file cambia. C'è un modo per determinare le sezioni dei file che sono diversi e inviare solo quelli (nota che questi file non sono necessariamente il testo, potrebbero essere qualsiasi formato). L'unico modo che mi viene in mente è quello di dividere il file in blocchi, hash dei blocchi e inviare gli hash indietro il richiedente che poi richiede solo i blocchi di cui ha bisogno, ma per i piccoli blocchi e file di grandi dimensioni questo è un grande testa in modo non v'è alcun modo per inviare qualche messaggio che descrive il mio file in modo tale che il messaggio singolare può essere analizzato per fornire un elenco dei blocchi che devono essere trasmessi?

La maggior parte delle funzioni digerire sono progettati in modo tale che una piccola modifica per i risultati dei dati in un grande cambiamento per l'intero uscita hash, ho praticamente bisogno retro di questa, che funzionerà su tutti i sistemi operativi.

È stato utile?

Soluzione

Se ho capito la tua domanda correttamente, è necessario mantenere i file sincronizzati su due sistemi. C'è uno strumento chiamato rsync in grado di sincronizzare due file (o intere directory) inviando solo le modifiche apportate al file.

Si può anche essere interessati a Rsync algoritmo .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top