Prosty eksperyment:
- zainstaluj Google Drive,
- w synchronizowanym folderze utwórz kontener TrueCrypt, zaczekaj aż się zsynchronizuje,
- zamontuj kontener, utwórz w nim plik,
- odmontuj kontener,
- pobierze kontener z Google Drive,
- zamontuj pobrany kontener,
- ...gdzie jest mój plik?!
Właściwie do ostatniego punktu może się nie uda dojść, bo samo zamontowanie kontenera może okazać się niemożliwe (właściwie - otwarcie zamontowanego kontenera).
To na początek zróbmy inny eksperyment (z użyciem Google Drive):
- stwórzmy kontener TrueCrypt w synchronizowanym folderze,
- zaczekajmy aż się zsynchronizuje,
- pobierzmy (do innego folderu) kontener z Google Drive,
- porównajmy pliki,
T:\>sha256deep *.tc
a7d510399a6728ee2e8c395af659fc97d80194e075f27bed1ba37f663b902e3f T:\sync.tc
b3be3abd99352385fe31a936669fcc4aaf334304594543c3a88385f1f0fb0987 T:\sync-src.tc
Plik "źródłowy" tutaj nazywa się sync-src.tc, ten pobrany z Google Drive (w założeniu - jego kopia) to sync.tc. Jak widać pliki różnią się między sobą. Gdyby zastosować "hashowanie po kawałku", okazałoby się, że pliki są do siebie częściowo podobne. Podobny rezultat daje zresztą ssdeep:
T:\>ssdeep -d *
T : \ s y n c . t c matches T : \ s y n c - s r c . t c (66)
Gdzie jest problem? Przypuszczam, że tu: TrueCrypt -> Settings -> Preferences -> Preserve modification timestamp of file containers. Czas modyfikacji pliku nie ulega zmianie, Google Drive (SkyDrive zresztą zachowuje się tak samo) nie zauważa zmiany pliku i go nie synchronizuje.
W przypadku samego tworzenia kontenera Google Drive zaczyna synchronizować plik, ale nie jest świadomy tego, że sam plik ulega zmianie w trakcie synchronizacji (formatowanie), w związku z czym wersja zapisana w chmurze nie będzie zawierała prawidłowego systemu plików.
Fajnie by było, gdyby któraś usługa operowała na poziomie zmian w pliku i nie była zależna od timestampu ostatniej modyfikacji...
EDIT: Odnośnie "operowania na poziomie zmian w pliku" chodzi mi nie tylko o wykrywanie zmian, ale również o synchronizowanie tylko zmienionych fragmentów plików. Coś jak w rsync.