Когда Dropbox обнаруживает файл на своем компьютере, который отличается от облачной версии этого файла, о которой он знает, как он решает, следует ли ему синхронизировать их, перезаписывая локальный файл с файлом облака, или синхронизируя их, перезаписывая файл облака с помощью локальный файл?
Перефразировать:
Если копия сервера и локальная копия файла отличаются,
и если программа dropbox запущена и заканчивает синхронизацию,
тогда эти два файла будут одинаковыми.
Эти два файла также будут идентичны одному из старых файлов. Мой вопрос, который --- старая копия сервера или старая локальная копия? Как это решить?
Ответы:
Я не знаю технических подробностей этого, но у меня есть ситуация, когда я и мой помощник работаем с общим Dropbox с двумя разными компьютерами, которые включаются и выключаются в разное время.
Ответ на ваш вопрос заключается в том, что когда вы подключаетесь к облаку, Dropbox знает (каким-то образом), что версия, находящаяся в данный момент в облаке, изначально была синхронизирована с вашего компьютера. Таким образом, если версия вашего компьютера отличается, то эта версия будет синхронизирована с облаком.
Если два компьютера (скажем, A и B) используют один и тот же выпадающий список, и каждый вносит изменения в автономном режиме, то первый компьютер включается (скажем, это компьютер A) и генерирует синхронизацию своего обновления в облаке. Так что теперь будет одна и та же версия (содержащая обновление A) для A и Cloud.
Когда компьютер B включается, Dropbox понимает, что версия файла компьютера B не только отличается от текущей облачной версии (что является нормальным), но и отличается от последней синхронизации Dropbox с ним. Таким образом, если бы он синхронизировал файл B с версией A, изменения B были бы потеряны. Так что Dropbox делает копию версии B и добавляет «конфликтующий файл B» к имени файла. Исходный файл B затем синхронизируется с обновлениями A. Конфликтующий файл, содержащий обновления B, затем синхронизируется с облаком и возвращается обратно в A.
Удаление и конфликты, возникающие в результате выборочной синхронизации, обрабатываются аналогичным образом.
Конфликт также возникает, если один из компьютеров не закрывает файл перед выключением. Синхронизация не происходит с открытым файлом, поэтому в этом случае обновления B будут синхронизироваться, а открытый файл A будет конфликтовать. Это может быть огромной болью для гармонизации, но это наша вина, а не Dropbox.
Надеюсь это поможет.
источник
У меня есть частичная информация, которая начинает отвечать на этот вопрос. Я не уверен, насколько это полезно для опытных пользователей, но я знаю, что новые пользователи, такие как я, сочтут этот отчет полезным.
Кроме того, разработка этого делает меня еще более озадаченным, что у невероятно основного вопроса нет никакого официального или авторитетного ответа. Отсутствие доступной документации или дискуссий говорит мне о том, что пользователи Dropbox вполне могут принять то, что Dropbox действительно делает, так, как они ожидали, что он будет делать в таких обстоятельствах. (то есть я бы даже не сказал, что у пользователей есть конкретное ожидание, что они держат Dropbox)
Примеры поведения Dropbox:
В моих примерах компьютер A и компьютер B никогда не включаются одновременно. Представьте себе, что один пользователь работает дома и на работе без совместной работы, при этом каждый компьютер выключается перед тем, как вернуться к другому.
Что происходит, если папка Dropbox на одном компьютере не идентична папке облачной папки Dropbox? Для максимальной наглядности я предпочитаю представить, как
dropbox.exe
реагирует, когда на одном компьютере есть пустая папка Dropbox. Будутdropbox.exe
считать эти отсутствующие файлы «удаленными» (что означает, что они удалят их из папки облачного хранилища) или «устаревшими» (что означает, что они будут создавать новые копии в локальной папке удаленного хранилища).Начните с ситуации, когда поведение явно очевидно: компьютер A включен, а компьютер B выключен. Если
dropbox.exe
он запущен и изменения внесены в A, то они распространяются в облачную папку, а не наоборот. Таким образом, в данный момент, если папка А очищается, эти отсутствующие файлы / папки считаются «удаленными», а папка облака очищается.Предположим, что в B есть пустая папка Dropbox, а A создает файлы и синхронизирует их с облачной папкой Dropbox. Если мы переключимся на компьютер B, ситуация
dropbox.exe
будет такова, что пустая папка Dropbox будет интерпретирована как «устаревшая», и новые копии из облачной папки будут созданы на B.Теперь для менее очевидного: предположим, мы вносим некоторые изменения в B и синхронизируем эти изменения в папке облачного хранилища. Если мы переключимся на компьютер A и - без первого запуска
dropbox.exe
- мы удалим вещи из папки Dropbox A, что будетdropbox.exe
делать потом? В этой ситуацииdropbox.exe
недостающие файлы / папки будут интерпретироваться как новые удаления, которые следует распространять в папку облачного хранилища.Меня сбивает с толку то, что в ситуациях 2 и 3 вы
dropbox.exe
включаетесь и сталкиваетесь с тем же «свежим» состоянием на новом компьютере, которое отличается от облачной папки, но оно будет действовать по-другому.Если вы хотите изобрести правило, объясняющее, как
dropbox.exe
работает, вы, очевидно, не можете предположить, что оно является функцией трех переменных: (1) того, что он видит на компьютере прямо сейчас, (2) того, что он видит в облачной папке, и (3 ) какой компьютер был последним синхронизировать с облачной папкой. (!!!)Возможно, дополнительная переменная в том, что Dropbox запоминает, что каждый компьютер в последний раз синхронизировал с облачной папкой. В ситуации 2 мы можем предположить, что в последний раз, когда компьютер B синхронизировался, он синхронизировал пустую папку. В ситуации 3 Dropbox запоминает, что в последний раз компьютер A синхронизировался, он синхронизировал папку, которая отличалась от того, что он в настоящее время находит внутри папки.
источник
dropbox.exe
просто проверяет каталог в автономном режиме и онлайн Как вы указали в своем последнем абзаце, dropbox хранит записи о каждом файле, хранящемся локально и онлайн, поэтому он точно знает, когда / что (и когда / что нет) синхронизировать. Посмотрите на мою Dropbox-каталог вC:\Users\<name>\AppData\Roaming\Dropbox
. Вы видите множество.dbx
файлов, где dropbox будет хранить эту информацию (не только даты, но и контрольные суммы и т. Д.). (Удалите эти файлы, и Dropbox серьезно испортит ваш каталог Dropbox онлайн и офлайн;)Из Dropbox FAQ :
Как оно работает?
Это тоже упоминается на их сайте :
источник