Для приложений Google Диска, которым необходимо отслеживать изменения элементов на Диске, коллекция «Изменения» обеспечивает эффективный способ обнаружения изменений. Коллекция работает, предоставляя текущее состояние каждого элемента тогда и только тогда, когда элемент изменился с определенного момента времени.
Google Диск ведет журнал изменений для каждого пользователя и общего диска. У каждого есть своя запись изменений в интересующих его элементах.
Чтобы отслеживать изменения для всех элементов, видимых пользователю, необходимо воспроизвести как журнал изменений пользователя, так и журналы изменений для всех общих дисков, участником которых является пользователь.
Включить записи изменений
Запись об изменении представляет состояние файла или общего диска в определенный момент времени. Изменение не обеспечивает разницу между ревизиями. Приложения, которым необходимо знать, какие свойства изменились, должны сохранять ранее известное состояние элемента и сравнивать его.
Поскольку изменения отражают текущее состояние элемента, отдельные записи изменений могут быть признаны недействительными и заменены более новой записью изменения для соответствующего элемента.
Надгробия
Записи об изменениях для элементов, которые больше не доступны пользователю, помечаются как deleted
в записи об изменении. В записи изменения доступен только идентификатор элемента.
Отслеживайте общие диски
Каждый общий диск имеет собственный журнал изменений. Несмотря на то, что пользователь может быть участником общего диска, некоторые изменения отражаются только в журнале изменений общего диска, а не в журнале изменений пользователя. Если файл принадлежит общему диску, даже если в какой-то момент в прошлом файл все еще появлялся в журнале изменений пользователя, воспроизведение только журнала изменений пользователя не приведет к правильному обновлению статуса файла. Вместо этого вам необходимо просмотреть журнал изменений общего диска, чтобы зафиксировать все изменения.
Что включается в журнал изменений пользователя
Журнал изменений пользователя включает изменения в общих дисках, участниками которых он является, а также изменения в файлах в корпусе пользователя. Дополнительные сведения о корпусах см. в разделе Обзор изменений и версий .
Эти изменения общего диска отображаются в журнале изменений пользователя:
- Пользователь становится участником общего диска.
- Пользователь больше не является участником общего диска.
- Произошло непосредственное изменение общего диска, участником которого является пользователь, например:
- Уровень доступа пользователя к этому общему диску изменился.
- Общий диск переименован.
Когда пользователь становится участником общего диска, в журнале изменений пользователя появляется одно событие изменения для общего диска. Это подразумевает доступ ко всем объектам на общем диске. Пользователь не получает изменений для элементов, содержащихся на общем диске, когда становится его участником.
Участники общего диска могут видеть события изменения элементов на общем диске в зависимости от их использования. Однако приложения не должны полагаться на эти события, если пользователь является участником общего диска. Вместо этого используйте журнал изменений общего диска для отслеживания изменений.
Если лицу, не являющемуся участником, предоставлен доступ к файлам к отдельным элементам на общем диске, изменения этих элементов отслеживаются в журнале изменений пользователя. Это то же самое, что и необщие элементы Диска, доступ к которым предоставлен непосредственно пользователям.
Изменения, отображаемые в журнале изменений общего диска
Если пользователь является участником общего диска, он может получить доступ к журналу изменений этого общего диска, который содержит:
- Любые изменения в самом общем диске, например добавление или удаление участника.
- Непосредственное изменение объектов, содержащихся на общем диске.
Синхронизация разрешений и возможностей
Изменения разрешений для общего диска или объектов внутри общего диска отражаются только на самом объекте. Хотя все прямые или косвенные дочерние элементы этого элемента унаследуют это изменение, в журнале изменений не будет отдельной записи для каждого из этих элементов. Клиенты должны либо распространить новые возможности, либо повторно загрузить каждый элемент, если родительский элемент изменился, чтобы полностью восстановить изменения.