Разница между общим диском и API «Моего диска»

Общие диски используют иные модели организации, совместного доступа и владения данными, чем «Мой диск». Поэтому некоторые операции в «Моем диске» не разрешены для содержимого общего диска.

В этом руководстве описаны различия в API, специфичные для общих дисков, в files и ресурсах changes .

Файловый ресурс

Следующие поля в ресурсе files заполняются только для файлов, расположенных на общем диске:

  • hasAugmentedPermissions : Предоставляется ли каким-либо пользователям прямой доступ к этому файлу.
  • capabilities/canAddFolderFromAnotherDrive : Позволяет ли текущий пользователь добавлять папку с другого диска (другого общего диска или «Мой диск») в эту папку.
  • capabilities/canDeleteChildren : Позволяет ли текущий пользователь удалять дочерние файлы этой папки.
  • capabilities/canMoveChildrenOutOfDrive : Позволяет ли текущий пользователь перемещать дочерние элементы этой папки за пределы общего диска.
  • capabilities/canMoveChildrenWithinDrive : Позволяет ли текущий пользователь перемещать дочерние файлы этой папки в пределах общего диска.
  • capabilities/canMoveItemWithinDrive : Позволяет ли текущий пользователь перемещать этот элемент общего диска внутри общего диска.
  • capabilities/canReadDrive : Указывает, имеет ли текущий пользователь права на чтение общего диска, к которому принадлежит этот файл.
  • capabilities/canTrashChildren : Позволяет ли текущий пользователь удалять дочерние файлы из этой папки.
  • driveId : Идентификатор общего диска, на котором находится файл.
  • trashingUser : Если файл был явно удален, указывается пользователь, который это сделал.
  • trashedTime : Время удаления элемента. Если вы используете более старую версию API Google Drive v2, это поле называется trashedDate .

Следующие поля не заполняются для файлов, расположенных на общем диске:

  • permissions : Из-за потенциально большого размера списков контроля доступа (ACL) к общим дискам права доступа не возвращаются вместе с файлами. Используйте метод permissions.list , который поддерживает постраничную навигацию, чтобы вывести список прав доступа для файла на общем диске или в папке общего диска.
  • owners , ownerNames , ownedByMe : Файлы на общем диске принадлежат этому общему диску, а не отдельным пользователям.
  • folderColorRgb : Папки нельзя раскрасить по отдельности.
  • shared : Все элементы на общем диске являются общими.
  • writersCanShare : В общих дисках невозможно ограничить доступ по ролям.

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

  • sharedWithMeDate
  • sharingUser

При использовании следующих полей с общими дисками необходимо проявлять особую осторожность:

  • parents.isRoot : Это поле имеет значение true только для корневой папки "Мой диск"; для корневой папки общего диска оно имеет значение false.
  • parents : Родительский файл не отображается в списке родителей, если запрашивающий пользователь не является членом общего диска и не имеет доступа к родительскому файлу. Кроме того, за исключением папки верхнего уровня, список родителей должен содержать ровно один элемент, если файл находится на общем диске.

  • capabilities/canRemoveChildren : Используйте capabilities/canDeleteChildren или capabilities/canTrashChildren .

Изменить ресурс

В разделе changes » для общего диска появились следующие новые поля:

  • changeType : Тип изменения. Возможные значения: file и drive .
  • driveId : Идентификатор общего диска, связанного с этим изменением.
  • drive : Обновленное состояние общего диска. Отображается, если changeType имеет значение drive , и пользователь по-прежнему является участником общего диска.

Для приложений, которым необходимо синхронизировать контент с общими дисками или отслеживать активность, могут потребоваться дополнительные изменения. Подробнее см. раздел «Отслеживание изменений для пользователей и общих дисков» .