Pod newsem o piątym odcinku podcastu AmiWigilia po raz kolejny powstała mała offtopicowa dyskusja na temat Dropboxa dla systemów amigowych. Arti uważa, że zrobienie go jest absolutnie niemożliwe dla nawet najmocniejszych maszyn na których działają systemy amigowe (np. MorphOS na PowerPC G4 1.67GHz). Ja nie mogę zrozumieć dlaczego i dlatego drążę temat. Skoro pełnoprawny klient Dropboxa działa mi wręcz niezauważalnie na starym MacBooku (late 2008) z Core2Duo 2GHz to dlaczego na G4/1.67GHz miałby działać tak koszmarnie dramatycznie? G4 jest wolniejszy od Core2Duo/2GHz ale przecież nie tak bardzo. Skoro coś działa idealnie na tym Core2Duo to w miarę powinno też chodzić na G4.
Myślałem, że może dałoby się zrobić takiego Dropboxa, który byłby synchronizowany na życzenie. Bez śledzenia zmian w chmurze i lokalnych. Nie jestem obeznany z API Dropboxa więc może się zbłaźnię ale chciałbym żeby ktoś (najlepiej Arti) mi uświadomił gdzie tu jest ta niewykonalna część choćby uproszczonego klienta Dropboxa.
Być może przez swoją niewiedzę myślę prymitywnie i nie kumam rzeczy oczywistych ale wyobrażam sobie, że proces synchronizacji przebiega jakoś tak (pomijam cała autoryzację OAuth i zakładam, że już jest zrobiona):
1. Ściągam z Dropboxa JSONa z listą plików, które zostały zmodyfikowane w chmurze od daty ostatniej synchronizacji z tym komputerem.
2. Przeglądam daty modyfikacji plików przechowywanych lokalnie i porównuję je z tym co dostałem z serwera.
3. Jeżeli jakiś plik doszedł lokalnie to go wysyłam do chmury.
4. Jeżeli jakiś plik został lokalnie skasowany to go kasuję w chmurze.
5. Jeżeli jakiś plik doszedł w chmurze to go ściągam.
6. Jeżeli jakiś plik zostął skasowany w chmurze to go kasuję lokalnie.
7. Jeżeli data modyfikacji pliku lokalnego jest nowsza niż tego z chmury to plik wysyłam.
8. Jeżeli data modyfikacji pliku w chmurze jest nowsza niż lokalnego to plik z chmury ściągam i nim zastępuję wersję lokalną.
Czy to wszystko faktycznie jest oparte na datach modyfikacji plików?
Co zrobić z sytuacją gdy oba pliki były modyfikowane i mają dokładnie ten sam czas modyfikacji? :) Jest to sytuacja nieprawdopodobna ale jednak możliwa i trzeba ją wziąć pod uwagę.
Co zrobić gdy data pod MorphOSem jest źle ustawiona? Może się to skończyć dosyć nieszczęśliwie (pokasowaniem w chmurze plików, które były nowsze ale miały starsze daty modyfikacji). Ciekawe jak zachowałby się oficjalny klient Dropboxa gdyby wyłączyć pod OSX/Windows ustawianie czasu z sieci, ustawić datę w przyszłości, zmodyfikować plik, wrócić do normalnej daty. Czy te pliki byłyby traktowane jako nowsze nawet jeżeli te w chmurze byłyby faktycznie nowsze?
Ostatnia aktualizacja: 28.12.2014 18:19:42 przez MDW