Diferenças entre o drive compartilhado e a API My Drive

Os drives compartilhados seguem modelos de organização, compartilhamento e propriedade diferentes do Meu Drive. Por isso, algumas operações do Meu Drive não são permitidas para conteúdo em um drive compartilhado. Este documento descreve as diferenças compartilhadas entre as APIs específicas do Google Drive.

Recurso de arquivo

Os campos a seguir no recurso File são preenchidos apenas para arquivos localizados em um drive compartilhado:

  • hasAugmentedPermissions: se algum usuário recebeu acesso ao arquivo diretamente nele.
  • capabilities/canAddFolderFromAnotherDrive: indica se o usuário atual pode adicionar uma pasta de outro drive (um drive compartilhado diferente ou o Meu Drive) a essa pasta.
  • capabilities/canDeleteChildren: se o usuário atual pode excluir subpastas dessa pasta.
  • capabilities/canMoveChildrenOutOfDrive: indica se o usuário atual pode mover as subpastas dessa pasta para fora do drive compartilhado.
  • capabilities/canMoveChildrenWithinDrive: indica se o usuário atual pode mover as subpastas dessa pasta no drive compartilhado.
  • capabilities/canMoveItemWithinDrive: indica se o usuário atual pode mover este item do drive compartilhado dentro dele.
  • capabilities/canReadDrive: se o usuário atual tem acesso de leitura ao drive compartilhado ao qual o arquivo pertence.
  • capabilities/canTrashChildren: se o usuário atual pode enviar para a lixeira as subpastas dessa pasta.
  • driveId: o ID da unidade compartilhada em que o arquivo está localizado.
  • trashingUser: se o arquivo foi excluído explicitamente, o usuário que o excluiu.
  • trashedTime: o horário em que o item foi excluído. Se você estiver usando a versão mais antiga da API Drive v2, esse campo será chamado de trashedDate.

Os seguintes campos não são preenchidos para arquivos em um drive compartilhado:

  • permissions: devido ao tamanho potencial das ACLs de unidades compartilhadas, as permissões não são retornadas como parte dos arquivos. Use o método permissions.list(), que oferece suporte à paginação, para listar as permissões de um arquivo em um drive compartilhado ou na pasta do drive compartilhado.
  • owners, ownerNames, ownedByMe: os arquivos em um drive compartilhado são de propriedade do drive compartilhado, não de usuários individuais.
  • folderColorRgb: as pastas não podem ser coloridas individualmente.
  • shared: todos os itens em um drive compartilhado são compartilhados.
  • writersCanShare: não é possível restringir o compartilhamento por função em unidades compartilhadas.

Os campos a seguir são definidos apenas quando o usuário recebeu permissões de acesso a arquivos em um item:

  • sharedWithMeDate
  • sharingUser

Os campos a seguir exigem consideração especial quando usados com unidades compartilhadas:

  • parents.isRoot: esse campo é verdadeiro apenas para a pasta raiz do Meu Drive, e falso para a pasta de nível superior do drive compartilhado.
  • parents: um editor principal não aparece na lista de editores principais se o usuário solicitante não for membro do drive compartilhado e não tiver acesso ao editor principal. Além disso, com exceção da pasta de nível superior, a lista de pais precisa conter exatamente um item se o arquivo estiver localizado em um drive compartilhado.

  • capabilities/canRemoveChildren: use capabilities/canDeleteChildren ou capabilities/canTrashChildren.

Recurso de permissão

O campo permissionDetails no recurso Permission só é preenchido para arquivos localizados em um drive compartilhado. Esse campo é uma lista de permissões condensadas que são ativadas ou herdadas por esse arquivo de drive compartilhado. Esse campo é somente de saída e está presente apenas para itens de drive compartilhado. Além disso:

  • Duas novas funções de organizer e fileOrganizer foram definidas.
  • O método permissions.list() oferece suporte à paginação.

Alterar recurso

Os seguintes novos campos estão disponíveis no recurso Change para um drive compartilhado:

  • changeType: o tipo de mudança. Os valores possíveis são file e drive.
  • driveId: o ID da unidade compartilhada associada a essa mudança.
  • drive: o estado atualizado da unidade compartilhada. Aparece quando changeType é drive e o usuário ainda é participante do drive compartilhado.

Outras mudanças podem ser necessárias para aplicativos que precisam sincronizar conteúdo com unidades compartilhadas ou rastrear atividades. Confira mais detalhes em Rastrear mudanças para usuários e drives compartilhados.