Mover ou excluir arquivos e pastas para a lixeira

É possível remover arquivos e pastas do Google Drive do Meu Drive e dos drives compartilhados. Há duas opções para fazer isso: mover para a lixeira ou excluir.

Você pode mover arquivos e pastas para a lixeira e restaurá-los (em até 30 dias após a movimentação). 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 mudanças.

Este guia explica como descartar arquivos no Drive.

Usar o parâmetro fields

Se você quiser especificar os campos a serem retornados na resposta, defina o fields parâmetro do sistema com qualquer método do recurso files. Se você omitir o parâmetro fields, o servidor retornará um conjunto padrão de campos específicos do método. Por exemplo, o list método retorna apenas os kind, id, name, mimeType e resourceKey campos para cada arquivo. Para retornar campos diferentes, consulte Retornar campos específicos.

Lixeira

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

Somente o proprietário do arquivo pode movê-lo para a lixeira, e outros usuários não podem visualizar arquivos na lixeira do proprietário. Se você tentar mover para a lixeira um arquivo que não é seu, receberá um insufficientFilePermissions erro. Para mais informações, consulte Permissões.

Para verificar se você é o proprietário do arquivo, chame o get método no files recurso com o fileId parâmetro de caminho e o fields parâmetro 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 a usuários individuais. Para mais informações sobre o parâmetro fields, consulte Usar o parâmetro fields.

Se você não for o proprietário do arquivo, mas ainda quiser uma cópia do arquivo movido para a lixeira, faça uma destas ações:

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

Mover um arquivo para a lixeira

Para mover um arquivo para a lixeira, use o update método no recurso files com o parâmetro de caminho fileId e defina o campo booleano trashed como true. Para mover um arquivo de drive compartilhado para a lixeira, você também precisa definir o parâmetro de consulta booleano supportsAllDrives query como true. Para mais informações, consulte Implementar suporte a drives compartilhados.

Se não houver falha, o corpo da resposta vai ter uma instância do files recurso.

O exemplo de código a seguir mostra como usar o fileId para marcar o arquivo como movido para a 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 mover para a lixeira.

Determinar as propriedades de um arquivo movido para a lixeira

Quando um arquivo é movido para a lixeira, é possível recuperar outras propriedades do arquivo. Você pode usar o método get no recurso files com o parâmetro de caminho fileId e usar um dos seguintes campos movidos para a lixeira no parâmetro fields. Para mais informações sobre o fields parâmetro, consulte Usar o parâmetro fields.

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

  • trashed: indica se o arquivo foi movido para a lixeira, de forma explícita ou de uma pasta mãe movida para a lixeira. Embora o uso de trashed com o método update defina o status do arquivo, o método get recupera o status do arquivo.
  • explicitlyTrashed: indica se o arquivo foi movido para a lixeira de forma explícita, em vez de recursiva, de uma pasta mãe.

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

  • trashedTime: o horário em que o item foi movido 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 movido para a lixeira de forma explícita, o usuário que o fez.

Recuperar um arquivo da lixeira

Para recuperar um arquivo da lixeira, use o update método no recurso files com o parâmetro de caminho fileId e defina o campo booleano trashed como false. Para remover um arquivo de drive compartilhado da lixeira, você também precisa definir o parâmetro de consulta booleano supportsAllDrives como true. Para mais informações, consulte Implementar suporte a drives compartilhados.

Se não houver falha, o corpo da resposta vai ter uma instância do files recurso.

O exemplo de código a seguir mostra como usar o fileId para marcar o arquivo como não movido para a 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 da lixeira.

Esvaziar lixeira

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

Se não houver nenhum problema, o corpo da resposta será um objeto JSON vazio.

O exemplo de código a seguir mostra como usar o fileId para excluir permanentemente 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, todas as pessoas com quem você o compartilhou perdem o acesso a ele. Se você quiser que outras pessoas mantenham o acesso ao arquivo, você pode transferir 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ê estiver excluindo 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 pertencente ao usuário sem movê-lo para a lixeira, use o delete método no files recurso. Para excluir um arquivo de drive compartilhado, você também precisa definir o parâmetro de consulta booleano supportsAllDrives como true. Para mais informações, consulte Implementar suporte a drives compartilhados.

Se não houver nenhum problema, o corpo da resposta será um objeto JSON vazio.

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 mover arquivos e pastas para a lixeira ou excluir. 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
Recuperar arquivos e pastas da lixeira
Esvaziar a lixeira
Excluir um arquivo ou uma pasta
Excluir arquivos e pastas em um drive compartilhado [*]
Excluir um drive compartilhado vazio

Recursos

Um recurso files contém uma coleção de campos booleanos capabilities que indicam os recursos que o usuário tem nesse arquivo.

Para verificar os recursos, chame o get método no recurso files com o parâmetro de caminho fileId e use um dos seguintes campos capabilities no parâmetro fields. Para mais informações sobre o fields parâmetro, consulte Usar o parâmetro fields.

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

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

Limites de arquivos e pastas

Os arquivos e pastas do Drive, além das 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 itens permanentemente ou usar outra conta. Mover arquivos para a lixeira não é suficiente para liberar espaço.

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