Question

J'ai un ensemble de noeuds géographiquement distants avec des systèmes d'exploitation hétérogènes qui doivent transférer des fichiers et des mises à jour autour de l'aide d'un programme Java, je vous écris. À l'heure actuelle, je dois envoyer à nouveau le fichier entier si les modifications de fichiers. Y at-il un moyen de déterminer les sections des fichiers qui sont différents et n'envoient les (notez que ces fichiers ne sont pas nécessairement du texte, ils pourraient être tout format). La seule façon que je peux penser est de diviser le fichier en blocs, hachage des blocs et envoyer les hash dos le demandeur qui demande alors que les blocs dont il a besoin, mais pour les petits blocs et des fichiers volumineux c'est un grand frais généraux est donc là une façon d'envoyer un certain message décrivant mon dossier tel que le message singulier peut être analysé pour fournir une liste des blocs qui doivent être transmis?

La plupart des digèrent les fonctions sont conçues de telle sorte qu'un petit changement aux résultats des données dans un grand changement sur toute la sortie de hachage, j'ai besoin essentiellement à l'inverse de ce qui fonctionne sur tous les systèmes d'exploitation.

Était-ce utile?

La solution

Si je comprends bien votre question, vous devez conserver les fichiers synchronisés sur deux systèmes. Il y a un outil appelé rsync qui peuvent synchroniser deux fichiers (ou répertoires entiers) en envoyant uniquement les modifications apportées à la fichier.

Vous pouvez également être intéressé par le Rsync algorithme .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top