Wie bestimmt Dropbox, wann die lokale Datei überschrieben werden soll und wann die Cloud-Datei überschrieben werden soll?

10

Wenn Dropbox auf eine Datei auf dem Computer stößt, die sich von der Cloud-Version dieser Datei unterscheidet, von der es weiß, wie entscheidet es, ob sie synchronisiert werden soll, indem die lokale Datei mit der Cloud-Datei überschrieben wird, oder ob sie synchronisiert wird, indem die Cloud-Datei mit überschrieben wird die lokale Datei?

Umformulieren:

  • Wenn die Serverkopie und die lokale Kopie einer Datei unterschiedlich sind,

  • und wenn das Dropbox-Programm gestartet wird und die Synchronisierung beendet ist,

  • dann sind diese beiden Dateien gleich.

Diese beiden Dateien sind auch mit einer der alten Dateien identisch . Meine Frage ist welche --- die alte Serverkopie oder die alte lokale Kopie? Wie entscheidet es?

Ein
quelle
Mmmm, ich bin mir nicht sicher, ob Ihre Umformulierung es klarer macht. Aber ich denke, Dropbox verwendet eine (Version von) Datei-Prüfsumme (und möglicherweise ein Änderungsdatum), um zu sehen, ob die Datei hochgeladen werden muss. (Es hat die alten in seiner lokalen Datenbank). Wenn die Prüfsumme anders ist, wird sie hochgeladen. Wenn online eine Version mit einem neueren Datum und einer anderen Prüfsumme als die alte in der lokalen Datenbank vorhanden ist, muss die Datei von einer anderen Person geändert worden sein, und die Datei wird in "Konfliktkopie" umbenannt. (Natürlich ist dies Spekulation und ich habe noch keine Bestätigung online gefunden)
Rik

Antworten:

5

Ich kenne die technischen Details nicht, aber ich habe die Situation, dass ich und mein Assistent eine gemeinsame Dropbox mit zwei verschiedenen Computern betreiben, die zu unterschiedlichen Zeiten ein- und ausgeschaltet werden.

Die Antwort auf Ihre Frage lautet, dass Dropbox beim Herstellen einer Verbindung mit der Cloud (irgendwie) weiß, dass die aktuell in der Cloud befindliche Version ursprünglich von Ihrem Computer synchronisiert wurde. Wenn sich Ihre Computerversion unterscheidet, wird diese Version mit der Cloud synchronisiert.

Wenn zwei Computer (z. B. A und B) dieselbe Dropbox verwenden und Änderungen offline vornehmen, generiert der erste Computer (z. B. Computer A) eine Synchronisierung seines Updates mit der Cloud. Jetzt wird es also dieselbe Version (mit dem A-Update) für A und Cloud geben.

Wenn Computer B eingeschaltet wird, erkennt Dropbox, dass sich die Version der Datei von Computer B nicht nur von der aktuellen Cloud-Version (was normal ist) unterscheidet, sondern auch von der letzten Synchronisierung von Dropbox. Wenn also die Datei von B mit der A-Version synchronisiert würde, würden die Änderungen von B verloren gehen. Dropbox erstellt also eine Kopie der B-Version und fügt dem Dateinamen "B's Conflicted File" hinzu. Die Originaldatei von B wird dann mit den A-Updates synchronisiert. Die in Konflikt stehende Datei, die die B-Updates enthält, wird dann mit der Cloud und wieder mit A synchronisiert.

Löschungen und Konflikte, die sich aus der selektiven Synchronisierung ergeben, werden auf ähnliche Weise behandelt

Ein Konflikt entsteht auch, wenn einer der Computer die Datei vor dem Ausschalten nicht schließt. Bei einer geöffneten Datei findet keine Synchronisierung statt. In diesem Fall werden die Aktualisierungen von B synchronisiert, und die geöffnete Datei von A führt zu einem Konflikt. Es kann ein großer Schmerz sein, dies zu harmonisieren, aber dies ist unsere Schuld, nicht die von Dropbox.

Hoffe das hilft.

Margie
quelle
1

Ich habe teilweise Informationen, die diese Frage zu beantworten beginnen. Ich bin mir nicht sicher, wie nützlich dies für erfahrene Benutzer ist, aber ich weiß, dass neuere Benutzer wie ich diesen Bericht hilfreich finden.

Abgesehen davon macht mich das Ausarbeiten noch verwirrter, dass eine unglaublich grundlegende Frage keine offizielle oder maßgebliche Antwort hat. Das Fehlen verfügbarer Dokumentation oder Diskussionen zeigt mir, dass Benutzer von Dropbox gut damit umgehen können, was Dropbox tatsächlich tut, wie sie es unter diesen Umständen erwartet hätten. (dh ich würde nicht einmal sagen, dass Benutzer eine konkrete Erwartung haben, dass sie Dropbox halten)

Beispiele für das Verhalten von Dropbox:

In meinen Beispielen werden Computer A und Computer B niemals gleichzeitig eingeschaltet. Stellen Sie sich einen einzelnen Benutzer vor, der zu Hause und bei der Arbeit nicht kollaborativ arbeitet, wobei jeder Computer ausgeschaltet wird, bevor er zum anderen zurückkehrt.

Was passiert, wenn der Dropbox-Ordner eines Computers nicht mit dem Cloud-Dropbox-Ordner identisch ist? Für maximale Klarheit stelle ich mir lieber vor, wie dropbox.exereagiert, wenn ein Computer einen leeren Dropbox-Ordner hat. Wird dropbox.exebetrachten die fehlenden Dateien als „Löschungen“ (das heißt , sie sie aus der Wolke Dropbox - Ordner entfernen wird) oder „out of date“ (das heißt , es neue Kopien von ihnen in der lokalen Dropbox - Ordner erstellen wird).

  1. Beginnen Sie mit einer Situation, in der das Verhalten offensichtlich ist: Computer A ist eingeschaltet und Computer B ist ausgeschaltet. Wenn ausgeführt dropbox.exewird und Änderungen an A vorgenommen werden, werden diese an den Cloud-Ordner weitergegeben und nicht umgekehrt. Wenn im Moment der Ordner von A geleert wird, werden diese fehlenden Dateien / Ordner als "Löschvorgänge" betrachtet und der Cloud-Ordner wird geleert.

  2. Angenommen, B hat einen leeren Dropbox-Ordner und A erstellt Dateien und synchronisiert diese mit dem Cloud-Dropbox-Ordner. Wenn wir zu Computer B wechseln, dropbox.exewird der leere Dropbox-Ordner von B als "veraltet" interpretiert, und auf B werden neue Kopien aus dem Cloud-Ordner erstellt.

  3. Nun zum weniger offensichtlichen: Angenommen, wir nehmen einige Änderungen in B vor und synchronisieren diese Änderungen mit dem Cloud-Dropbox-Ordner. Wenn wir zu Computer A wechseln und - ohne vorher ausgeführt zu werden dropbox.exe- Dinge im Dropbox-Ordner von A löschen, was wird dropbox.exedanach ausgeführt? In dieser Situation dropbox.exewerden die fehlenden Dateien / Ordner als neue Löschvorgänge interpretiert, die an den Cloud-Dropbox-Ordner weitergegeben werden sollen.

Ich finde es verwirrend, dass Sie in den Situationen 2 und 3 eingeschaltet sind dropbox.exeund auf einem neuen Computer, der sich vom Cloud-Ordner unterscheidet, denselben "frischen" Status haben, der sich jedoch anders verhält.

Wenn Sie eine Regel erfinden möchten, die erklärt, wie sie dropbox.exefunktioniert, können Sie offensichtlich nicht davon ausgehen, dass sie von den drei Variablen abhängt: (1) was sie gerade auf dem Computer sieht, (2) was sie im Cloud-Ordner sieht und (3) ) welcher Computer zuletzt mit dem Cloud-Ordner synchronisiert wurde. (!!!)

Vielleicht ist die zusätzliche Variable, dass Dropbox sich merkt, was jeder Computer zuletzt mit dem Cloud-Ordner synchronisiert hat. In Situation 2 können wir davon ausgehen, dass Computer B bei der letzten Synchronisierung einen leeren Ordner synchronisiert hat. In Situation 3 merkt sich Dropbox, dass Computer A bei der letzten Synchronisierung einen Ordner synchronisiert hat, der sich von dem unterscheidet, was er derzeit im Ordner findet.

Ein
quelle
1
Es ist nicht so, dass dropbox.exenur das Verzeichnis offline und online überprüft wird. Wie Sie in Ihrem letzten Absatz angegeben haben, zeichnet dropbox jede lokal und online gespeicherte Datei auf , damit sie genau weiß, wann / was (und wann / was nicht) synchronisiert werden soll. Schau dir mein Dropbox-Verzeichnis an C:\Users\<name>\AppData\Roaming\Dropbox. Sie sehen viele .dbxDateien, in denen Dropbox diese Informationen speichert (nicht nur Daten, sondern auch Prüfsummen usw.). (Löschen Sie diese Dateien und Dropbox wird Ihr Dropbox-Verzeichnis online und offline ernsthaft durcheinander bringen;)
Rik
Ich weiß nicht, wie Sie erwarten, dass Dropbox Änderungen verfolgt, wenn es überhaupt nicht ausgeführt wird. In Szenario 2 fügen Sie Dropbox Dateien hinzu, S3 löscht Dateien aus Dropbox. Sie sind zwei verschiedene Szenarien und sollten sich unterschiedlich verhalten. Ich bin mir nicht sicher, woher deine Verwirrung stammt. Dropbox bemüht sich nach besten Kräften, basierend auf dem, was sich zum Zeitpunkt des Einschaltens von Dropbox in der Cloud und auf Ihrer Festplatte befindet. Die beste Möglichkeit, Dropbox zu verwenden, besteht darin, sie immer eingeschaltet zu lassen. Wenn Sie Computer ausschalten müssen, gehen Sie vorsichtig mit Löschungen um. Mindestens DropBox bietet Ihnen 30 Tage Wiederherstellungen. Sie denken, Dropbox ist schlecht, versuchen Sie OneDrive.
So
"Ich weiß nicht, wie Sie erwarten, dass Dropbox den Überblick behält, wenn es ausgeschaltet ist" <- Sie erwarten es wahrscheinlich, wenn Sie erwarten, dass S3 anders als S2 funktioniert. "Wenn Sie Computer ausschalten, gehen Sie vorsichtig mit Löschvorgängen um" <- Als Dropbox-Benutzer ist dies eine Warnung, die ich gerne in der Dokumentation gesehen hätte. Es fällt Ihnen sehr leicht zu sagen, "es sollte sich anders verhalten", weil Sie nicht genau angeben, was es tun soll. Was mich stört, ist, dass ich keine Dokumentation finden konnte, die tatsächlich angibt, was sie tun soll. Genau deshalb war ich verwirrt: gezwungen zu erraten, was die Variablen waren und es falsch zu verstehen!
Ein
Es ist eigentlich eine sehr relevante Frage und ich bin hierher gekommen, weil ich die Frage gegoogelt habe. Mein Laptop ist seit mindestens einem Jahr nicht mehr vollständig mit Dropbox synchronisiert, da mir der Speicherplatz ausgeht. Also habe ich selektive Synchronisation verwendet. Jetzt habe ich meine Festplatte auf eine größere SSD aktualisiert und möchte alles wieder synchronisieren. In einigen Ordnern auf meinem Laptop fehlen viele Dateien, und ich befürchte, dass Dropbox bei der Synchronisierung falsch interpretiert, was zu tun ist. Fügt es die Dateien aus der Cloud zu den lokalen Ordnern hinzu - oder löscht es stattdessen die fehlenden Dateien aus der Cloud? Ich bin mir nicht ganz sicher!
Marlar
-2

Aus den Dropbox-FAQ :

Im Gegensatz zur Dropbox-Desktop-App, die Ihre Dateien ständig auf Änderungen überprüft, wird die mobile App normalerweise nur bei Bedarf synchronisiert. Dies verhindert, dass Dropbox Ihre gesamte Bandbreite und Ihren gesamten Speicherplatz beansprucht.

Wie macht es das?

Auch das wird auf ihrer Seite erwähnt :

Vor dem Übertragen einer Datei vergleichen wir die neue Datei mit der vorherigen Version und senden nur den Teil der Datei, der sich geändert hat. Dies wird als "binäres Diff" bezeichnet und funktioniert für jeden Dateityp. Dropbox komprimiert Dateien (ohne Daten- oder Qualitätsverlust), bevor sie ebenfalls übertragen werden. Auf diese Weise müssen Sie sich auch keine Sorgen mehr machen, dass Dropbox eine Datei erneut hochlädt oder Bandbreite verschwendet.

Karan Raj Baruah
quelle
1
Ich stelle eine grundlegendere Frage, die nichts mit Komprimierung / Unterschieden zu tun hat. Woher weiß es, wann die lokale Datei die neue "aktuellste Version" werden soll und ob die lokale Datei "veraltet" ist?
Ein
Es hat nichts mit Unterschieden zu tun. Die Dropbox-API kann diese Unterschiede vergleichen, wenn eine bestimmte Datei "veraltet" ist, und beschließt, die bestimmte Datei zu synchronisieren. Ansonsten konnte ich keine weiteren Informationen finden. Dropbox selbst als Closed Source hat keine weiteren Informationen veröffentlicht.
Karan Raj Baruah
Ich habe die Frage bearbeitet, um meine Fragen neu zu formulieren, da wahrscheinlich Verwirrung herrscht. Außerdem kann ich Ihren zweiten Satz nicht analysieren.
Ein