Comment Dropbox détermine-t-il quand remplacer le fichier local par rapport au remplacement du fichier cloud?

10

Lorsque Dropbox rencontre un fichier sur son ordinateur différent de la version cloud de ce fichier qu'il connaît, comment décide-t-il s'il doit les synchroniser en écrasant le fichier local avec le fichier cloud ou les synchroniser en écrasant le fichier cloud avec le fichier local?

Pour reformuler:

  • Si la copie du serveur et la copie locale d'un fichier sont différentes,

  • et si le programme dropbox est lancé et termine la synchronisation,

  • alors ces deux fichiers seront les mêmes.

Ces deux fichiers seront également identiques à l' un des anciens fichiers. Ma question est quelle --- l'ancienne copie du serveur ou l'ancienne copie locale? Comment décide-t-il?

Ein
la source
Mmmm, je ne sais pas si votre reformulation le rend plus clair. Mais je pense que Dropbox utilise une (version de) fichier-checksum (et peut-être change-date) pour voir si le fichier doit être téléchargé. (Il a les anciens dans sa base de données locale). Si la somme de contrôle est différente, elle va pour un téléchargement. Si en ligne, il existe une version avec une date plus récente et une somme de contrôle différente de l'ancienne dans sa base de données locale, quelqu'un d'autre doit avoir modifié le fichier et le fichier sera renommé en ajoutant "copie en conflit". (bien sûr, c'est de la spéculation et je n'ai pas encore trouvé de confirmation de cela en ligne)
Rik

Réponses:

5

Je ne connais pas les détails techniques de cela, mais j'ai la situation où moi et mon assistant exploitons une boîte de dépôt commune avec deux ordinateurs différents allumés et éteints à des moments différents.

La réponse à votre question est que lorsque vous vous connectez au Cloud, Dropbox sait (en quelque sorte) que la version actuellement sur le Cloud a été initialement synchronisée depuis votre ordinateur. Donc, si la version de votre ordinateur est différente, c'est la version qui sera synchronisée avec le Cloud.

Si deux ordinateurs (disons A et B) utilisent la même liste déroulante et effectuent chacun des modifications hors ligne, le premier ordinateur s'allume (disons que c'est l'ordinateur A) générera une synchronisation de sa mise à jour dans le cloud. Alors maintenant, il y aura la même version (contenant la mise à jour A) sur A et Cloud.

Lorsque l'ordinateur B est mis sous tension, Dropbox se rendra compte que la version du fichier de l'ordinateur B est non seulement différente de la version cloud actuelle (ce qui est normal) mais différente de la dernière synchronisation de Dropbox à partir de celui-ci. Donc, s'il devait synchroniser le fichier de B avec la version A, les modifications de B seraient perdues. Donc ce que Dropbox fait est de faire une copie de la version B et d'ajouter "le fichier en conflit avec B" au nom du fichier. Le fichier d'origine de B est ensuite synchronisé avec les mises à jour de A. Le fichier en conflit, contenant les mises à jour B, est ensuite synchronisé avec le cloud et redescendu vers A.

Les suppressions et les conflits résultant d'une synchronisation sélective sont traités de la même manière.

Un conflit se produit également si l'un des ordinateurs ne ferme pas le fichier avant la mise hors tension. La synchronisation ne se produit pas sur un fichier ouvert, dans ce cas, les mises à jour de B seront celles qui sont synchronisées, et le fichier ouvert de A se terminera comme un conflit. Cela peut être très difficile à harmoniser, mais c'est notre faute, pas celle de Dropbox.

J'espère que cela t'aides.

Margie
la source
1

J'ai des informations partielles qui commencent à répondre à cette question. Je ne sais pas à quel point cela est utile pour les utilisateurs expérimentés, mais je sais que les nouveaux utilisateurs comme moi trouveront ce rapport utile.

En aparté, travailler cela me rend encore plus perplexe à l'idée qu'une question incroyablement basique n'a pas de réponse officielle ou faisant autorité. Le manque de documentation ou de discussions disponibles m'indique que les utilisateurs de Dropbox sont prêts à considérer tout ce que Dropbox fait réellement comme ce qu'ils auraient prévu qu'il fasse dans ces circonstances. (c'est-à-dire que je ne dirais même pas que les utilisateurs s'attendent concrètement à ce qu'ils tiennent Dropbox)

Exemples de comportement de Dropbox:

Dans mes exemples, l'ordinateur A et l'ordinateur B ne sont jamais tous deux sous tension en même temps. Imaginez un seul utilisateur travaillant de manière non collaborative à la maison et au travail, chaque ordinateur étant éteint avant de revenir à l'autre.

Que se passe-t-il lorsque le dossier Dropbox d'un ordinateur n'est pas identique au dossier Dropbox Cloud? Pour une clarté maximale, je préfère imaginer comment dropbox.exeréagit lorsqu'un ordinateur a un dossier dropbox vide . Est-ce que dropbox.execonsidérer les fichiers manquants comme des « suppressions » ( ce qui signifie qu'il va les supprimer du nuage dossier dropbox) ou « démodés » ( ce qui signifie qu'il va créer de nouvelles copies dans le dossier local) dropbox.

  1. Commencez par une situation où le comportement est clairement évident: l' ordinateur A est allumé et l'ordinateur B est éteint. Si dropbox.exeest en cours d'exécution et que des modifications sont apportées à A, celles-ci sont propagées dans le dossier cloud et non l'inverse. Donc, pour le moment, si le dossier de A est vidé, ces fichiers / dossiers manquants sont considérés comme des «suppressions» et le dossier cloud est vidé.

  2. Supposons que B ait un dossier dropbox vide et que A crée des fichiers et les synchronise avec le dossier dropbox cloud. Si nous passons à l'ordinateur B, la situation est celle dropbox.exequi interprétera le dossier dropbox vide de B comme «obsolète», et de nouvelles copies du dossier cloud sont créées sur B.

  3. Maintenant, pour le moins évident: supposons que nous apportions des modifications dans B et synchronisons ces modifications dans le dossier dropbox du cloud. Si nous passons à l'ordinateur A et --- sans avoir d'abord exécuté dropbox.exe--- nous supprimons des choses dans le dossier de dépôt de A, qu'est-ce qui fonctionnera dropbox.exeensuite? Dans cette situation dropbox.exe, les fichiers / dossiers manquants seront interprétés comme de nouvelles suppressions qui devraient être propagées dans le dossier dropbox du cloud.

Je trouve confus que dans les situations 2 et 3, vous ayez dropbox.exeété allumé et rencontriez le même état "frais" sur un nouvel ordinateur qui diffère du dossier cloud, mais cela agira différemment.

Si vous vouliez inventer une règle qui explique comment dropbox.exefonctionne, vous ne pouvez évidemment pas supposer que c'est une fonction des trois variables: (1) ce qu'il voit sur l'ordinateur en ce moment, (2) ce qu'il voit sur le dossier cloud, et (3 ) quel ordinateur a été synchronisé en dernier avec le dossier cloud. (!!!)

Peut-être que la variable supplémentaire est que Dropbox se souvient de la dernière synchronisation de chaque ordinateur avec le dossier cloud. Dans la situation 2, nous pouvons supposer que la dernière fois que l'ordinateur B a synchronisé, il a synchronisé un dossier vide. Dans la situation 3, Dropbox se souvient que la dernière fois que l'ordinateur A a synchronisé, il a synchronisé un dossier différent de ce qu'il trouve actuellement dans le dossier.

Ein
la source
1
Ce n'est pas que dropbox.exevérifie le répertoire hors ligne et en ligne. Comme vous le dites dans votre dernier paragraphe, dropbox conserve un enregistrement de chaque fichier stocké localement et en ligne afin qu'il sache exactement quand / quoi (et quand / quoi ne pas) synchroniser. Jetez un oeil à mon dropbox-dir dans C:\Users\<name>\AppData\Roaming\Dropbox. Vous voyez beaucoup de .dbx-fichiers où dropbox conservera ces informations (pas seulement les dates mais aussi les sommes de contrôle etc ...). (Supprimez ces fichiers et dropbox gâchera sérieusement votre répertoire dropbox en ligne et hors ligne;)
Rik
Je ne sais pas comment vous vous attendez à ce que Dropbox garde une trace des changements quand il ne fonctionne pas du tout. Dans le scénario 2, vous ajoutez des fichiers à Dropbox, S3 efface les fichiers de Dropbox. Ce sont deux scénarios différents et doivent se comporter différemment. Je ne sais pas d'où vient votre confusion. Dropbox fera de son mieux en fonction de ce qui se trouve dans le cloud et sur votre disque dur au moment où vous allumez Dropbox. La meilleure façon d'utiliser Dropbox est de toujours le garder. Si vous devez éteindre des ordinateurs, faites attention aux suppressions. Au moins DropBox vous donne des restaurations de 30 jours. Vous pensez que Dropbox est mauvais, essayez OneDrive.
Sun
"Je ne sais pas comment vous vous attendez à ce que Dropbox garde une trace lorsqu'elle est désactivée" <- sans doute vous vous y attendez, si vous vous attendez à ce que S3 agisse différemment de S2. "Si vous éteignez des ordinateurs, faites attention aux suppressions" <- En tant qu'utilisateur dropbox, c'est un avertissement que j'aurais aimé voir dans la documentation. Il est très facile pour vous de dire "il devrait se comporter différemment" car vous n'indiquez pas exactement ce qu'il doit faire. Ce qui me dérange, c'est que je n'ai pas pu trouver de documentation indiquant réellement ce qu'elle devrait faire. C'est précisément pourquoi j'étais confus: obligé de deviner quelles étaient les variables et de se tromper!
Ein
C'est en fait une question très pertinente et je suis venu ici de googler la question. Mon ordinateur portable n'a pas été entièrement synchronisé avec Dropbox depuis au moins un an car j'ai manqué d'espace. J'ai donc utilisé la synchronisation sélective. Maintenant, j'ai mis à niveau mon disque dur vers un SSD plus grand et je veux tout synchroniser à nouveau. De nombreux fichiers manquent dans certains dossiers de mon ordinateur portable et je crains que Dropbox n'interprète mal ce qu'il faut faire lorsque je synchronise. Va-t-il ajouter les fichiers du cloud aux dossiers locaux - ou supprimera-t-il à la place les fichiers manquants du cloud? Je n'en suis pas tout à fait sûr!
marlar
-2

De la FAQ Dropbox :

Contrairement à l'application de bureau Dropbox, qui vérifie constamment les modifications de vos fichiers, l'application mobile se synchronise généralement à la demande uniquement. Cela empêche Dropbox de consommer toute votre bande passante et votre espace.

Comment fait-il cela?

Cela aussi est mentionné sur leur site :

Avant de transférer un fichier, nous comparons le nouveau fichier à la version précédente et n'envoyons que la partie du fichier qui a été modifiée. Cela s'appelle un "diff binaire" et fonctionne sur n'importe quel type de fichier. Dropbox compresse les fichiers (sans aucune perte de données ou de qualité) avant de les transférer également. De cette façon, vous n'aurez jamais non plus à vous soucier de Dropbox de télécharger à nouveau un fichier ou de gaspiller la bande passante.

Karan Raj Baruah
la source
1
Je pose une question plus fondamentale sans rapport avec la compression / diffs ... comment sait-il quand le fichier local devrait devenir la nouvelle "version la plus récente" par rapport à savoir si le fichier local est "obsolète".
Ein
Ce n'est pas sans rapport avec les différences. L'API Dropbox sait comparer ces différences lorsqu'un fichier particulier devient "obsolète" et décide de synchroniser le fichier particulier. A part ça, je n'ai pas pu trouver plus d'informations. Dropbox en tant que source fermée n'a pas rendu plus d'informations publiques.
Karan Raj Baruah
J'ai modifié la question pour reformuler ce que je demande, car il y a probablement une certaine confusion. De plus, je ne peux pas analyser votre deuxième phrase.
Ein