¿Cómo determina Dropbox cuándo sobrescribir el archivo local o sobrescribir el archivo en la nube?

10

Cuando Dropbox encuentra un archivo en la computadora que es diferente de la versión en la nube de ese archivo que conoce, ¿cómo decide si debe sincronizarlos sobrescribiendo el archivo local con el archivo en la nube o sincronizándolos sobrescribiendo el archivo en la nube con el archivo local?

Para reformular:

  • Si la copia del servidor y la copia local de un archivo son diferentes,

  • y si el programa Dropbox se inicia y finaliza la sincronización,

  • entonces estos dos archivos serán iguales.

Estos dos archivos también serán idénticos a uno de los archivos antiguos. Mi pregunta es cuál --- ¿la copia del servidor anterior o la copia local anterior? ¿Cómo se decide?

Ein
fuente
Mmmm, no estoy seguro si tu reformulación lo hace más claro. Pero creo que Dropbox usa una (versión de) suma de comprobación de archivos (y tal vez fecha de cambio) para ver si el archivo debe cargarse. (Tiene los antiguos en su base de datos local). Si la suma de comprobación es diferente, se carga. Si en línea hay una versión con una fecha más nueva y una suma de verificación diferente a la anterior en su base de datos local, alguien más debe haber cambiado el archivo y el archivo será renombrado agregando "copia en conflicto". (por supuesto, esto es especulación y todavía no he encontrado confirmación de esto en línea)
Rik

Respuestas:

5

No sé los aspectos técnicos de esto, pero tengo la situación en la que yo y mi asistente operamos un Dropbox común con dos computadoras diferentes encendidas y apagadas en diferentes momentos.

La respuesta a su pregunta es que cuando se conecta con la nube, Dropbox sabe (de alguna manera) que la versión actualmente en la nube se sincronizó originalmente desde su computadora. Entonces, si la versión de su computadora es diferente, esa es la versión que se sincronizará con la nube.

Si dos computadoras (digamos A y B) están usando el mismo Dropbox, y cada una realiza cambios sin conexión, entonces la primera computadora se enciende (digamos que es la computadora A) generará una sincronización de su actualización a la nube. Así que ahora habrá la misma versión (que contiene la actualización A) en A y Cloud.

Cuando la computadora B está encendida, Dropbox se dará cuenta de que la versión del archivo de la computadora B no solo es diferente de la versión actual de la nube (que es normal) sino diferente de la última vez que Dropbox se sincronizó. Entonces, si fuera a sincronizar el archivo de B con la versión A, los cambios de B se perderían. Entonces, lo que hace Dropbox es hacer una copia de la versión B y agregar el "archivo en conflicto de B" al nombre del archivo. El archivo original de B se sincroniza con las actualizaciones de A. El archivo en conflicto, que contiene las actualizaciones B, se sincroniza con la nube y vuelve a bajar a A.

Las eliminaciones y los conflictos derivados de la sincronización selectiva se manejan de manera similar.

También surge un conflicto si una de las computadoras no cierra el archivo antes de apagarse. La sincronización no se produce en un archivo abierto, por lo que en este caso las actualizaciones de B serán las que se sincronizan, y el archivo abierto de A terminará como un conflicto. Armonizar esto puede ser un gran dolor, pero es culpa nuestra, no de Dropbox.

Espero que esto ayude.

Margie
fuente
1

Tengo información parcial que comienza a responder esta pregunta. No estoy seguro de lo útil que es esto para los usuarios experimentados, pero sé que los usuarios más nuevos como yo encontrarán útil este informe.

Por otro lado, resolver esto me deja aún más perplejo de cómo una pregunta increíblemente básica no tiene ninguna respuesta oficial o autorizada. La falta de documentación disponible o discusiones me dice que los usuarios de Dropbox están de acuerdo con tomar lo que Dropbox realmente hace como lo que esperaban que hiciera en esas circunstancias. (es decir, ni siquiera diría que los usuarios tienen una expectativa concreta de que mantienen Dropbox)

Ejemplos de cómo se comportará Dropbox:

En mis ejemplos, la computadora A y la computadora B nunca están encendidas al mismo tiempo. Imagine a un solo usuario trabajando de manera no colaborativa en el hogar y el trabajo, con cada computadora apagada antes de volver a la otra.

¿Qué sucede cuando la carpeta de Dropbox de una computadora no es idéntica a la carpeta de Dropbox en la nube? Para mayor claridad, prefiero imaginar cómo dropbox.exereacciona cuando una computadora tiene una carpeta vacía de Dropbox. Se dropbox.execonsidere esos archivos que faltan como "supresiones" (lo que significa que se eliminarán de la carpeta Dropbox nube) o "fuera de fecha" (lo que significa que va a crear nuevas copias de los mismos dentro de la carpeta de dropbox local).

  1. Comience con una situación en la que el comportamiento sea claramente obvio: la computadora A está encendida y la computadora B está apagada. Si se dropbox.exeestá ejecutando y se realizan cambios en A, estos se propagan a la carpeta de la nube y no al revés. Entonces, por el momento, si la carpeta de A se vacía, entonces estos archivos / carpetas faltantes se consideran "eliminaciones" y la carpeta de la nube se vacía.

  2. Suponga que B tiene una carpeta de Dropbox vacía y A crea archivos y los sincroniza con la carpeta de Dropbox en la nube. Si cambiamos a la computadora B, la situación es que dropbox.exeinterpretará la carpeta vacía de Dropbox de B como "desactualizada", y se crean nuevas copias de la carpeta en la nube en B.

  3. Ahora para lo menos obvio: supongamos que hacemos algunos cambios en B y sincronizamos estos cambios en la carpeta de Dropbox en la nube. Si cambiamos a la computadora A y --- sin ejecutar primero dropbox.exe--- eliminamos cosas dentro de la carpeta de Dropbox de A, ¿qué hará dropbox.exedespués? En esta situación dropbox.exe, interpretará los archivos / carpetas que faltan como nuevas eliminaciones que deben propagarse a la carpeta de Dropbox en la nube.

Me resulta confuso que en las situaciones 2 y 3 se dropbox.exeenciende y se encuentra con el mismo estado "nuevo" en una computadora nueva que difiere de la carpeta de la nube, pero actuará de manera diferente.

Si desea inventar una regla que explique cómo dropbox.exefunciona, evidentemente no puede asumir que es una función de las tres variables: (1) lo que ve en la computadora en este momento, (2) lo que ve en la carpeta de la nube y (3) ) qué computadora fue la última en sincronizarse con la carpeta en la nube. (!!!)

Quizás la variable adicional es que Dropbox recuerda lo que cada computadora sincronizó por última vez con la carpeta de la nube. En la situación 2, podríamos suponer que la última vez que la computadora B se sincronizó, sincronizó una carpeta vacía. En la situación 3, Dropbox recuerda que la última vez que la computadora A se sincronizó, sincronizó una carpeta que era diferente de la que actualmente se encuentra dentro de la carpeta.

Ein
fuente
1
No es que dropbox.exesolo verifique el directorio fuera de línea y en línea. Como lo indicó en su último párrafo, Dropbox mantiene un registro de cada archivo almacenado localmente y en línea para que sepa exactamente cuándo / qué (y cuándo / qué no) sincronizar. Echa un vistazo a mi dropbox-dir en C:\Users\<name>\AppData\Roaming\Dropbox. Verá muchos .dbxarchivos donde dropbox mantendrá esa información (no solo fechas, sino también sumas de verificación, etc.). (Eliminar esos archivos y Dropbox en serio te dañará tu directorio de Dropbox en línea y fuera de línea;)
Rik
No sé cómo espera que Dropbox realice un seguimiento de los cambios cuando no se está ejecutando en absoluto. En el escenario 2, está agregando archivos a Dropbox, S3 está borrando archivos de Dropbox. Son dos escenarios diferentes y deben comportarse de manera diferente. No estoy seguro de dónde proviene su confusión. Dropbox hará un gran esfuerzo en función de lo que está en la nube y en su disco duro al momento de encender Dropbox. La mejor manera de usar Dropbox es mantenerlo siempre encendido. Si tiene que apagar las computadoras, tenga cuidado con las eliminaciones. Al menos DropBox te ofrece restauraciones de 30 días. Si crees que Dropbox es malo, prueba OneDrive.
Dom
"No sé cómo esperas que Dropbox haga un seguimiento cuando está apagado" <- posiblemente lo esperes, si esperas que S3 actúe de manera diferente a S2. "Si apaga las computadoras, tenga cuidado con las eliminaciones" <- Como usuario de Dropbox, esta es una advertencia que me gustaría ver en la documentación. Es muy fácil para usted decir "debería comportarse de manera diferente" porque no está diciendo exactamente lo que debe hacer. Lo que me molesta es que no pude encontrar documentación que realmente indique lo que debe hacer. Esta es precisamente la razón por la que estaba confundido: ¡forzado a adivinar cuáles eran las variables y equivocarme!
Ein
En realidad es una pregunta muy relevante y vine aquí buscando en Google la pregunta. Mi computadora portátil no se ha sincronizado completamente con Dropbox durante al menos un año porque me quedé sin espacio. Entonces usé sincronización selectiva. Ahora he actualizado mi HD a una SSD más grande y quiero sincronizar todo nuevamente. Faltan muchos archivos en algunas carpetas de mi computadora portátil y me temo que Dropbox malinterpretará qué hacer cuando sincronizo. ¿Agregará los archivos de la nube a las carpetas locales, o eliminará los archivos que faltan de la nube? ¡No estoy seguro!
marlar
-2

De las preguntas frecuentes de Dropbox :

A diferencia de la aplicación de escritorio de Dropbox, que comprueba constantemente los cambios de sus archivos, la aplicación móvil generalmente se sincroniza solo bajo demanda. Esto evita que Dropbox consuma todo su ancho de banda y espacio.

¿Como hace esto?

Eso también se menciona en su sitio :

Antes de transferir un archivo, comparamos el nuevo archivo con la versión anterior y solo enviamos la parte del archivo que cambió. Esto se llama un "diferencial binario" y funciona en cualquier tipo de archivo. Dropbox comprime archivos (sin pérdida de datos o calidad) antes de transferirlos también. De esta manera, tampoco tendrá que preocuparse de que Dropbox vuelva a cargar un archivo o malgaste el ancho de banda.

Karan Raj Baruah
fuente
1
Estoy preguntando sobre una pregunta más básica no relacionada con la compresión / diferencias ... ¿cómo sabe cuándo el archivo local debe convertirse en la nueva "versión más actual" frente a si el archivo local está "desactualizado"?
Ein
No está relacionado con las diferencias. La API de Dropbox sabe que compara estas diferencias cuando un archivo en particular queda "desactualizado" y decide sincronizar el archivo en particular. Aparte de esto, no pude encontrar más información. El hecho de que Dropbox sea de código cerrado no ha hecho pública más información.
Karan Raj Baruah
He editado la pregunta para reformular lo que estoy preguntando, porque probablemente haya algo de confusión. Además, no puedo analizar tu segunda oración.
Ein