Synchronizacja dużych plików między Klientem a Serwerem

Witam.

 

Poszukuję rozwiązania dotyczące mojego problemu.

 

Problem jest taki że są 2 duże pliki, na serwerze i na kliencie. (Powiedzmy 2GB)

 

I z tego pliku 2GB zmodyfikowałem jakieś 45MB.

Czy istnieje sposób na przesłanie informacji dotyczących wprowadzonych zmian?

 

Że na przykład przesyłam tylko 45MB (+ dane które umożliwią wykonać na serwerze wstrzyknięcie zmian) przez sieć?

 

W większości przypadków działa to w taki sposób że program sprawdza 2 wersje plików i przesyła CAŁY najnowszy plik na klient/serwer.

 

 

Do serwera mam pełny dostęp, mogę zainstalować co na nim tylko chcę, tak samo na kliencie, więc ograniczeń żadnych nie mam.

 

Podejrzewam że czas “wstrzykiwanie” danych do pliku (kasacja/modyfikacja/dodanie fragmentu) będzie dość długim procesem, i ta wada mnie nie zaboli, może mi nawet przez 45 minut wstrzykiwać te 45 MB, ważne bym mógł szybko przesłać te 45MB na serwer, a serwer zrobi swoje.

 

 

Czy istnieje takowy program na klient i serwer? (albo protokół?)

 

Używałem kiedyś chyba taki “prymitywny” program takiego rodzaju (do określonych plików), że pobieram pliki ważące 32MB i program .exe który “wstrzykuje” te dane do ogromnych plików.

Nie piszesz jakie masz środowiska, więc gotowej odpowiedzi nie ma jak Ci udzielić. Poczytaj o block-Level Sync, który ma nawet Dropbox.

Dziękuję za szybką odpowiedź.

block-Level Sync jest akurat tym czego szukam.

Głównie szukam darmowego oprogramowania na systemie Windows.

Lecz jedynie co ciekawego znalazłem to płatne programy - GoodSync i Syncovery.

 

Szukam dalej w Internecie jakiejś sensownej i darmowej alternatywy ale nie mogę znaleźć.

Byłbym wdzięczny kolejną pomoc.

EDIT: Analizuję program rsync ale nie wiem czy w dobrym kierunku idę, jakieś rady?