1

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

  • Загрузите метаданные файла перед загрузкой, чтобы проверить, что etag не изменился с момента последней загрузки.
  • Потребляйте периодические изменения и проверяйте файл etags некорректно.

Google, похоже, обладает привилегией второго варианта. Но с обоими из них нет способа убедиться, что файл не был изменен во время загрузки. В принципе, мне нужна операция загрузки атома, которая:

  1. Проверяет, что etag совпадает с последним обновлением. Если не выбрасывает ошибку.
  2. Если нормально, обновляет загруженный файл

Есть ли способ сделать это?

Благодаря

ответ

1

Если добавить и If-Match в заголовках HTTP на ваши запросы PUT, следует отвергнуть устаревшие версии и реагировать с ошибкой.

If-Match: "S0wCTlpIIip7ImA0X0QI" 
+0

Очень приятно! Документация, похоже, не упоминает об этом. Огромное спасибо. – benweet

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

  • Нет связанных вопросов^_^