Mover ou excluir arquivos e pastas para a lixeira

Você pode remover arquivos e pastas do Google Drive do Meu Drive e dos 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 após enviá-los para a lixeira. A exclusão de arquivos e pastas os remove permanentemente do Drive. Se você mover para a lixeira, 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. É possível restaurar arquivos da lixeira antes desse período.

Somente o proprietário pode enviar um arquivo para a lixeira, e outros usuários não podem ver os arquivos que estão na lixeira. Se você tentar mover um arquivo que não é seu para a lixeira, será exibido o 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. 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 dele, siga um destes procedimentos:

  • Faça uma cópia do arquivo.
  • Entre em contato com o proprietário e peça que ele restaure 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 enviar um arquivo de drive compartilhado para a lixeira, você também precisa definir o parâmetro de consulta supportsAllDrives como True. Para mais informações, consulte Implementar o suporte a drives compartilhados.

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

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

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 ligar.

Determinar as propriedades de um arquivo na lixeira

Quando um arquivo é enviado para a lixeira, é possível recuperar outras propriedades de files. É possível usar o método files.get e incluir os campos a seguir no parâmetro fields. Para saber mais, consulte Retornar campos específicos para um arquivo.

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

  • trashed: indica se o arquivo foi enviado para a lixeira, explicitamente ou de uma pasta mãe movida para a lixeira. Observe que, ao usar trashed com o método files.update define o status do arquivo, o método files.get recupera o status dele.
  • explicitlyTrashed: se o arquivo foi explicitamente enviado para a lixeira (e não recursivamente) de uma pasta mãe.

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

  • trashedTime: a hora em que o item foi enviado para a lixeira no formato de data e 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 explicitamente enviado para a lixeira, o usuário que o moveu para a lixeira.

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 drive compartilhado, você também precisa definir o parâmetro de consulta supportsAllDrives como True. Para mais informações, consulte Implementar o suporte a drives compartilhados.

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

O exemplo de código a seguir mostra como usar o fileId para marcar o arquivo como retirado da lixeira:

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 remover.

Esvaziar lixeira

É possível excluir permanentemente todos os arquivos do Drive que o usuário moveu para a lixeira usando o método files.emptyTrash. Para esvaziar a lixeira de um drive compartilhado, você também precisa definir o parâmetro de consulta driveId como o ID do drive compartilhado.

Se bem-sucedido, o corpo da resposta conterá uma instância vazia.

O exemplo de código a seguir mostra como usar fileId para excluir todos os arquivos na 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, qualquer pessoa com quem você o compartilhou perderá o acesso a ele. Se quiser que outras pessoas mantenham o acesso ao arquivo, transfira a propriedade para outra antes da exclusão.

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

Para excluir permanentemente um arquivo de propriedade do usuário sem movê-lo para a lixeira, use o método files.delete. Para excluir um arquivo de drive compartilhado, você também precisa definir o parâmetro de consulta supportsAllDrives como True. Para mais informações, consulte Implementar o suporte a drives compartilhados.

Se bem-sucedido, o corpo da resposta conterá uma instância vazia.

O exemplo de código a seguir mostra como usar o 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 papel necessárias para executar cada operação. Para 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
Recupere arquivos e pastas da lixeira
Esvaziar a lixeira
Excluir um arquivo ou uma pasta permanentemente
Excluir arquivos e pastas em um drive compartilhado [*]

Funções

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

Para conferir 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 o arquivo para a lixeira.
  • capabilities.canUntrash: se o usuário atual pode restaurar o arquivo da lixeira.
  • capabilities.canDelete: se o usuário atual pode excluir o arquivo.
  • capabilities.canRemoveChildren: se o usuário atual pode remover filhos dessa pasta. Isso é falso quando o item não é uma pasta.

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

  • capabilities.canTrashChildren: se o usuário atual pode enviar os filhos desta pasta para a lixeira. Isso é falso quando o item não é uma pasta.
  • capabilities.canDeleteChildren: se o usuário atual pode excluir filhos dessa pasta. Isso é falso quando o item não é uma pasta.

Limites de arquivos e pastas

Os arquivos e as pastas do Drive, assim como as pastas dos 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 limites de arquivos e pastas, consulte: