Mover ou excluir arquivos e pastas para a lixeira

Você pode remover arquivos e pastas do Google Drive do Meu Drive e de drives compartilhados. Você tem duas opções para fazer isso: lixeira ou excluir.

Você pode mover arquivos e pastas para a lixeira e restaurá-los (até 30 dias depois de excluí-los). Excluir arquivos e pastas os remove permanentemente do Drive. Se você excluir, restaurar ou excluir permanentemente vários arquivos ou pastas de uma vez, talvez leve algum tempo para notar as alterações.

Este guia explica como descartar arquivos no Drive.

Lixeira

Para remover arquivos do Drive, mova-os para a lixeira. Os arquivos na lixeira são excluídos automaticamente após 30 dias. Você pode restaurar arquivos da lixeira antes desse período.

Somente o proprietário do arquivo pode excluí-lo, e outros usuários não podem acessar os arquivos na lixeira do proprietário. Se você tentar excluir um arquivo que não é seu, vai receber um erro insufficientFilePermissions. Para mais informações, consulte Permissões.

Para verificar se você é o proprietário do arquivo, chame o método files.get com o fileId e o parâmetro fields definido como o campo booleano ownedByMe. O campo ownedByMe não é preenchido para arquivos em drives compartilhados porque eles pertencem ao drive compartilhado, não aos usuários individuais. Para mais informações sobre como retornar campos usando o parâmetro fields, consulte Retornar campos específicos de um arquivo.

Se você não for o proprietário do arquivo, mas ainda quiser uma cópia do arquivo excluído, faça uma das seguintes ações:

  • Faça uma cópia do arquivo.
  • Entre em contato com o proprietário e peça para ele restaurar o arquivo da lixeira.

Mover um arquivo para a lixeira

Para mover um arquivo para a lixeira, use o método files.update e defina o campo trashed como True. Para excluir um arquivo de drive compartilhado, também é necessário definir o parâmetro de consulta supportsAllDrives como True. Para mais informações, consulte Implementar suporte a drives compartilhados.

Se for bem-sucedido, o corpo da resposta vai conter uma instância do recurso files.

O exemplo de código abaixo mostra como usar fileId para marcar o arquivo como lixo:

Python

body_value = {'trashed': True}

response = drive_service.files().update(fileId="FILE_ID", body=body_value).execute()

Node.js

const body_value = {
  'trashed': True
};

const response = await drive_service.files.update({
      fileId: 'FILE_ID',
      requestBody: body_value,
    });
    return response;

Substitua FILE_ID pelo fileId do arquivo que você quer excluir.

Determinar as propriedades de um arquivo excluído

Quando um arquivo é excluído, é possível recuperar outras propriedades files. Use o método files.get e inclua os campos abaixo no parâmetro fields. Para mais informações, consulte Retornar campos específicos de um arquivo.

Os campos a seguir são preenchidos para todos os arquivos:

  • trashed: se o arquivo foi excluído da lixeira, explicitamente ou de uma pasta pai excluída. Ao usar trashed com o método files.update, o status do arquivo é definido, mas o método files.get recupera o status do arquivo.
  • explicitlyTrashed: se o arquivo foi movido para a lixeira explicitamente, em vez de recursivamente, de uma pasta mãe.

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

  • trashedTime: o horário em que o item foi excluído na lixeira no formato de data/hora RFC 3339. Se você estiver usando a versão anterior da API Drive v2, esse campo será chamado de trashedDate.
  • trashingUser: se o arquivo foi excluído explicitamente, o usuário que fez isso.

Recuperar um arquivo da lixeira

Para recuperar um arquivo da lixeira, use o método files.update e defina o campo trashed como False. Para remover um arquivo de um drive compartilhado da lixeira, defina o parâmetro de consulta supportsAllDrives como True. Para mais informações, consulte Implementar suporte a drives compartilhados.

Se for bem-sucedido, o corpo da resposta vai conter uma instância do recurso files.

O exemplo de código abaixo mostra como usar o fileId para marcar o arquivo como não excluído:

Python

body_value = {'trashed': False}

response = drive_service.files().update(fileId="FILE_ID", body=body_value).execute()

Node.js

const body_value = {
  'trashed': False
};

const response = await drive_service.files.update({
      fileId: 'FILE_ID',
      requestBody: body_value,
    });
    return response;

Substitua FILE_ID pelo fileId do arquivo que você quer restaurar.

Esvaziar lixeira

Você pode excluir permanentemente todos os arquivos do Drive que o usuário mudou para a lixeira usando o método files.emptyTrash. Para esvaziar a lixeira de um drive compartilhado, também é necessário definir o parâmetro de consulta driveId para o ID do drive compartilhado.

Se a solicitação for bem-sucedida, o corpo da resposta vai conter uma instância vazia.

O exemplo de código abaixo mostra como usar fileId para excluir todos os arquivos da lixeira:

Python

response = drive_service.files().emptyTrash().execute()

Node.js

 const response = await drive_service.files.emptyTrash({
    });
    return response;

Excluir

É possível excluir permanentemente um arquivo do Drive sem movê-lo para a lixeira. Após a exclusão de um arquivo, todas as pessoas com quem você o compartilhou perdem o acesso a ele. Se você quiser que outras pessoas mantenham o acesso ao arquivo, transfira a propriedade para outra pessoa antes da exclusão.

Para excluir um arquivo de drive compartilhado, o usuário precisa ter role=organizer na pasta mãe. Se você excluir uma pasta, todos os descendentes pertencentes ao usuário também serão excluídos. Para mais informações, consulte Permissões.

Para excluir permanentemente um arquivo do usuário sem movê-lo para a lixeira, use o método files.delete. Para excluir um arquivo de unidade compartilhada, também é necessário definir o parâmetro de consulta supportsAllDrives como True. Para mais informações, consulte Implementar suporte a unidades compartilhadas.

Se a solicitação for bem-sucedida, o corpo da resposta vai conter uma instância vazia.

O exemplo de código a seguir mostra como usar fileId para excluir o arquivo:

Python

response = drive_service.files().delete(fileId="FILE_ID").execute()

Node.js

 const response = await drive_service.files.delete({
      fileId: 'FILE_ID'
    });
    return response;

Substitua FILE_ID pelo fileId do arquivo que você quer excluir.

Permissões

A tabela a seguir mostra as permissões de função necessárias para realizar cada operação. Para conferir uma lista completa de papéis e as operações permitidas por cada um, consulte Papéis e permissões.

Operação permitida owner organizer fileOrganizer writer commenter reader
Mover arquivos e pastas para a lixeira
Recuperar arquivos e pastas da lixeira
Esvaziar a lixeira
Excluir um arquivo ou uma pasta permanentemente
Excluir arquivos e pastas em um drive compartilhado [*]

Recursos

Um recurso files contém uma coleção de campos capabilities booleanos usados para indicar se uma ação pode ser realizada em um arquivo.

Para verificar os recursos, chame o método files.get com o fileId e o parâmetro fields definido como o campo capabilities. Para mais informações sobre como retornar campos usando o parâmetro fields, consulte Retornar campos específicos de um arquivo.

Os campos a seguir são preenchidos para todos os arquivos:

  • capabilities.canTrash: se o usuário atual pode mover esse arquivo para a lixeira.
  • capabilities.canUntrash: se o usuário atual pode restaurar esse arquivo da lixeira.
  • capabilities.canDelete: se o usuário atual pode excluir esse arquivo.
  • capabilities.canRemoveChildren: se o usuário atual pode remover subpastas dessa pasta. O valor é falso quando o item não é uma pasta.

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

  • capabilities.canTrashChildren: se o usuário atual pode enviar para a lixeira as pastas filhas dessa pasta. O valor é falso quando o item não é uma pasta.
  • capabilities.canDeleteChildren: se o usuário atual pode excluir subpastas dessa pasta. O valor é falso quando o item não é uma pasta.

Limites de arquivos e pastas

Os arquivos e pastas do Google Drive, assim como as pastas de drives compartilhados, têm alguns limites de armazenamento.

Geralmente, depois que o limite de itens é atingido, a única maneira de criar mais espaço é excluir permanentemente os itens ou usar uma conta diferente. Mover arquivos para a lixeira não é suficiente para liberar espaço.

Para mais informações sobre os limites de arquivos e pastas, consulte: