In che modo Dropbox determina quando sovrascrivere il file locale e sovrascrivere il file cloud?


10

Quando Dropbox rileva un file sul proprio computer diverso dalla versione cloud di quel file di cui è a conoscenza, come decide se deve sincronizzarli sovrascrivendo il file locale con il file cloud o sincronizzandoli sovrascrivendo il file cloud con il file locale?

Per riformulare:

  • Se la copia del server e la copia locale di un file sono diverse,

  • e se il programma dropbox viene avviato e termina la sincronizzazione,

  • quindi questi due file saranno gli stessi.

Questi due file saranno anche identici a uno dei vecchi file. La mia domanda è quale --- la vecchia copia del server o la vecchia copia locale? Come decide?


Mmmm, non sono sicuro che la tua riformulazione lo chiarisca. Ma penso che Dropbox usi una (versione di) file-checksum (e forse change-date) per vedere se il file deve essere caricato. (Ha quelli vecchi nel suo database locale). Se il checksum è diverso, vale per un caricamento. Se online esiste una versione con una data più recente e un checksum diverso da quella precedente nel suo database locale, qualcun altro deve aver modificato il file e il file verrà rinominato aggiungendo "copia in conflitto". (ovviamente questa è speculazione e non ho ancora trovato conferma di questo online)
Rik

Risposte:


5

Non conosco i tecnicismi di questo, ma ho la situazione in cui io e il mio assistente gestiamo un dropbox comune con due diversi computer accesi e spenti in momenti diversi.

La risposta alla tua domanda è che quando ti connetti al Cloud, Dropbox sa (in qualche modo) che la versione attualmente sul Cloud era originariamente sincronizzata dal tuo computer. Quindi, se la versione del tuo computer è diversa, quella è la versione che verrà sincronizzata con il Cloud.

Se due computer (diciamo A e B) utilizzano lo stesso dropbox e ciascuno apporta modifiche offline, il primo computer si accende (supponiamo che sia il computer A) genererà una sincronizzazione del suo aggiornamento nel cloud. Quindi ora ci sarà la stessa versione (contenente l'aggiornamento A) su A e Cloud.

Quando il computer B viene acceso, Dropbox si renderà conto che la versione del file del computer B non è solo diversa dalla versione cloud corrente (che è normale) ma diversa dall'ultima volta in cui Dropbox si è sincronizzato da esso. Quindi, se si dovesse sincronizzare il file di B con la versione A, le modifiche di B andrebbero perse. Quindi quello che Dropbox fa è fare una copia della versione B e aggiungere "il file in conflitto di B" al nome del file. Il file originale di B viene quindi sincronizzato con gli aggiornamenti A. Il file in conflitto, contenente gli aggiornamenti B, viene quindi sincronizzato con il cloud e nuovamente in A.

Le eliminazioni e i conflitti derivanti dalla sincronizzazione selettiva vengono gestiti in modo simile

Inoltre, si verifica un conflitto se uno dei computer non chiude il file prima di spegnersi. La sincronizzazione non si verifica su un file aperto, quindi in questo caso gli aggiornamenti di B saranno quelli sincronizzati e il file aperto di A finirà come un conflitto. Questo può essere un grande dolore da armonizzare, ma è colpa nostra, non di Dropbox.

Spero che sia di aiuto.


1

Ho informazioni parziali che iniziano a rispondere a questa domanda. Non sono sicuro di quanto sia utile agli utenti esperti, ma so che gli utenti più recenti come me troveranno utile questo rapporto.

A parte questo, risolverlo mi rende ancora più perplesso di come una domanda incredibilmente semplice non abbia una risposta ufficiale o autorevole. La mancanza di documentazione o discussioni disponibili mi dice che gli utenti di Dropbox stanno bene prendendo qualunque cosa Dropbox faccia effettivamente come si sarebbero aspettati che facesse in quelle circostanze. (vale a dire, non direi nemmeno che gli utenti hanno un'aspettativa concreta di tenere dropbox su)

Esempi di come si comporterà Dropbox:

Nei miei esempi, il computer A e il computer B non sono mai entrambi accesi contemporaneamente. Immagina un singolo utente che lavora in modo non collaborativo a casa e al lavoro, con ogni computer spento prima di tornare all'altro.

Cosa succede quando la cartella dropbox di un computer non è identica alla cartella cloud dropbox? Per la massima chiarezza preferisco immaginare come dropbox.exereagisce quando un computer ha una cartella dropbox vuota . Sarà dropbox.exein considerazione i file mancanti come "eliminazioni" (il che significa che li rimuoverà dalla cartella dropbox cloud) o "fuori data" (il che significa che creerà nuove copie di essi all'interno della cartella dropbox locale).

  1. Inizia con una situazione in cui il comportamento è chiaramente evidente: il computer A è acceso e il computer B è spento. Se dropbox.exeè in esecuzione e le modifiche vengono apportate ad A, queste vengono propagate nella cartella cloud e non viceversa. Quindi al momento, se la cartella A viene svuotata, questi file / cartelle mancanti vengono considerati "eliminazioni" e la cartella cloud viene svuotata.

  2. Supponiamo che B abbia una cartella dropbox vuota e che A crei file e li sincronizzi con la cartella cloud dropbox. Se passiamo al computer B, la situazione è quella di dropbox.exeinterpretare la cartella dropbox vuota di B come "non aggiornata" e le nuove copie dalla cartella cloud vengono create su B.

  3. Ora per i meno ovvi: supponiamo di apportare alcune modifiche in B e di sincronizzarle con la cartella del cloud dropbox. Se passiamo al computer A e --- senza prima eseguire dropbox.exe--- eliminiamo le cose all'interno della cartella dropbox di A, cosa farà dropbox.exedopo l' esecuzione ? In questa situazione dropbox.exeinterpreterà i file / le cartelle mancanti come nuove eliminazioni che dovrebbero essere propagate alla cartella del cloud dropbox.

Trovo confuso che nelle situazioni 2 e 3 sia dropbox.exestato acceso e si trovi lo stesso stato "fresco" su un nuovo computer che differisce dalla cartella cloud, ma funzionerà in modo diverso.

Se volevi inventare una regola che spieghi come dropbox.exefunziona, evidentemente non puoi presumere che sia una funzione delle tre variabili: (1) ciò che vede sul computer in questo momento, (2) ciò che vede sulla cartella cloud e (3 ) quale computer è stato sincronizzato per ultimo con la cartella cloud. (!!!)

Forse la variabile extra è che Dropbox ricorda ciò che ogni computer ha sincronizzato l'ultima volta con la cartella cloud. Nella situazione 2, potremmo supporre che l'ultima volta che il computer B è stato sincronizzato, abbia sincronizzato una cartella vuota. Nella situazione 3, Dropbox ricorda che l'ultima volta che il computer A è stato sincronizzato, ha sincronizzato una cartella che era diversa da quella che trova attualmente nella cartella.


1
Non è dropbox.exesolo che controlla la directory offline e online. Come hai affermato nel tuo ultimo paragrafo, dropbox registra tutti i file archiviati localmente e online in modo da sapere esattamente quando / cosa (e quando / cosa non) sincronizzare. Dai un'occhiata al mio dropbox-dir in C:\Users\<name>\AppData\Roaming\Dropbox. Vedrai molti file in .dbxcui dropbox manterrà tali informazioni (non solo date ma anche checksum ecc ...). (Elimina quei file e la casella personale rovinerà seriamente la tua cartella personale online e offline;)
Rik

Non so come ti aspetti che Dropbox tenga traccia delle modifiche quando non è in esecuzione. Nello scenario 2, stai aggiungendo file a Dropbox, S3 sta cancellando i file da Dropbox. Sono due scenari diversi e dovrebbero comportarsi in modo diverso. Non sono sicuro da dove provenga la tua confusione. Dropbox farà il massimo sforzo in base a ciò che è nel cloud e sul disco rigido al momento dell'accensione di Dropbox. Il modo migliore per usare Dropbox è tenerlo sempre acceso. Se devi spegnere i computer, fai attenzione alle eliminazioni. Almeno DropBox ti offre ripristini di 30 giorni. Pensi che Dropbox sia male, prova OneDrive.
Dom

"Non so come ti aspetti che Dropbox tenga traccia quando è spento" <- probabilmente ti aspetti che lo faccia se S3 si comporta diversamente da S2. "Se spegni i computer, fai attenzione con le eliminazioni" <- Come utente di dropbox, questo è un avviso che vorrei vedere nella documentazione. È molto facile per te dire "dovrebbe comportarsi diversamente" perché non stai affermando esattamente cosa dovrebbe fare. Ciò che mi preoccupa è che non sono riuscito a trovare la documentazione che effettivamente DICHIARA che cosa dovrebbe fare. Questo è esattamente il motivo per cui ero confuso: costretto a indovinare quali fossero le variabili e sbagliarle!
Ein

In realtà è una domanda molto rilevante e sono venuto qui da google la domanda. Il mio laptop non è stato completamente sincronizzato con Dropbox per almeno un anno perché ho esaurito lo spazio. Quindi ho usato la sincronizzazione selettiva. Ora ho aggiornato il mio HD a un SSD più grande e voglio sincronizzare di nuovo tutto. Manca un sacco di file in alcune cartelle sul mio laptop e temo che Dropbox possa interpretare erroneamente cosa fare quando eseguo la sincronizzazione. Aggiungerà i file dal cloud alle cartelle locali o eliminerà invece i file mancanti dal cloud? Non ne sono del tutto sicuro!
marlar,

-2

Dalle FAQ di Dropbox :

A differenza dell'app desktop Dropbox, che controlla costantemente le modifiche dei file, l'app mobile di solito si sincronizza solo su richiesta. Ciò impedisce a Dropbox di consumare tutta la larghezza di banda e lo spazio.

Come fa?

Anche questo è menzionato sul loro sito :

Prima di trasferire un file, confrontiamo il nuovo file con la versione precedente e inviamo solo il pezzo del file che è cambiato. Questo si chiama "binary diff" e funziona su qualsiasi tipo di file. Dropbox comprime i file (senza alcuna perdita di dati o qualità) prima di trasferirli. In questo modo, non dovrai mai preoccuparti del ri-caricamento di un file o dello spreco della larghezza di banda di Dropbox.


1
Sto ponendo una domanda più basilare non correlata alla compressione / diff ... come fa a sapere quando il file locale dovrebbe diventare la nuova "versione più recente" rispetto al fatto che il file locale sia "obsoleto".
Ein,

Non è estraneo alle differenze. L'API Dropbox sa come confrontare queste differenze quando un determinato file diventa "obsoleto" e decide di sincronizzare il file specifico. Oltre a questo non sono riuscito a trovare ulteriori informazioni. Dropbox stesso essendo chiuso non ha reso più pubbliche le informazioni.
Karan Raj Baruah,

Ho modificato la domanda per riformulare ciò che sto chiedendo, perché probabilmente c'è qualche confusione in corso. Inoltre, non riesco ad analizzare la tua seconda frase.
Ein,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.