2013-09-27 2 views
1

Я хочу хранить непрозрачные «настройки приложения» с помощью Диска.Как я могу безопасно обновлять файл, открытый в нескольких местах?

Я надеялся, что у диска было что-то вроде «parent_rev» (из DropBox API). Чтобы приложение могло быть уверенным, что файл не изменился между последней синхронизацией и текущей операцией обновления.

Мне повезло здесь?

ответ

1

В запросе обновления нет параметров, чтобы заставить API вести себя так, как если parent_ref отличается от последней версии.

Вам необходимо управлять этим столкновением вручную, проверяя, является ли ваша локальная ревизия последней после извлечения revision list файла; не забудьте сделать это перед загрузкой файла.

По умолчанию update request имеет флаг newRevision, установленный в true, и он создаст новую версию для каждой загрузки.

+0

При проверке списка изменений полезно, это не позволяет избежать возможного состояния гонки с двумя авторами, пытающимися одновременно обновить один и тот же файл. –

+0

Вы получите 2 версии файла; если изменения настолько часты, и вам нужно обновить версию «клиент», я думаю, вам нужно будет использовать API реального времени ... но я все еще рассматриваю возможные альтернативы – smokybob

1

Хранить и сравнивать значения etag. Глядя на номер ревизии хрупкий.

Смежные вопросы