Техника синхронизации DropBox - PullRequest
1 голос
/ 18 октября 2010

В настоящее время я занимаюсь разработкой приложения с использованием API dropbox c #.

DropBox может записывать изменения на своем сервере, а также изменения в их клиенте почти сразу.

Какой метод они используют длясинхронизировать эти 2 реплики?

Хотелось бы, чтобы кто-нибудь дал мне подсказку для начала, я стараюсь избегать синхронизации по таймеру.

Спасибо.

Ответы [ 3 ]

1 голос
/ 18 октября 2010

Я не знаю, что они используют. Но вы можете использовать файловую систему из c #. Это позволит вам поймать событие изменения файла. Это не самая простая вещь для работы, но простая в использовании.

Чтобы убедиться, что старые ревизии файла не перезаписывают новые, я предполагаю, что они используют счетчик ревизий, что часто бывает.

Чтобы определить, изменился ли файл из текущего сохраненного файла, я полагаю, что они могут использовать несколько проверок

if (local[file.name].size != server[file.name].size)
{
    file.changed = true;
}
else if (local[file.name].md5 != server[file.name].md5)
{
    file.changed = true;
}
else
{
    file.changed = false;
}
0 голосов
/ 07 марта 2017

Для изменений на стороне сервера вы должны запросить "list_folder_continue" в API V2.Он вернет список внесенных изменений.Протестируйте, используя эту ссылку.

0 голосов
/ 18 октября 2010

Для клиентских изменений они могут использовать наблюдателя файловой системы. В случае изменения папки dropbox они инициируют API-интерфейс для обновления сервера Dropbox.

Я не уверен в изменениях на стороне сервера, но должен быть какой-то механизм таймера для опроса сервера, чтобы увидеть изменения ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...