Я пытаюсь реализовать синхронизацию файлов между локальной папкой и удаленным Google Диском. Классическая проблема — это когда какие-то модификации делаются с обеих сторон одновременно. Поэтому, когда я обновляю файл локально, я должен убедиться, что файл не был изменен на Google Диске, прежде чем выполнять загрузку, чтобы я мог управлять конфликтами. Что касается Google Drive SDK, у меня есть несколько вариантов обнаружения:
- Загрузите метаданные файла непосредственно перед загрузкой, чтобы убедиться, что etag не изменился с момента последней загрузки.
- Периодически потребляйте ленту изменений и проверяйте теги файлов декоррелированным образом.
Google, похоже, отдает предпочтение второму варианту. Но с обоими из них нет способа быть уверенным, что файл не был изменен во время загрузки. По сути, мне нужна операция атомарной загрузки, которая:
- Проверяет, что etag совпадает с последним обновлением. Если нет выдает ошибку.
- Если все в порядке, обновляет загруженный файл
Есть какой-либо способ сделать это?
Спасибо