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: mover para a lixeira ou excluir.

Você pode mover arquivos e pastas para a lixeira e depois restaurá-los (até 30 dias após o envio 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 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 parâmetro do sistema fields com qualquer método do recurso files. Se você omitir o parâmetro fields, o servidor vai retornar um conjunto padrão de campos específicos do método. Por exemplo, o método list retorna apenas os campos kind, id, name, mimeType e resourceKey de cada arquivo. Para retornar campos diferentes, consulte Retornar campos específicos.

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 do período de 30 dias.

Somente o proprietário pode mover um arquivo para a lixeira, e outros usuários não podem ver os arquivos na lixeira do proprietário. Se você tentar mover para a lixeira 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 get no recurso files com o parâmetro de caminho 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 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 item 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 restaurar o arquivo da lixeira.

Mover um arquivo para a lixeira

Para mover um arquivo para a lixeira, use o método update 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 booleano supportsAllDrives da consulta como true. Para mais informações, consulte Implementar suporte a drives compartilhados.

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

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 na lixeira

Quando um arquivo é movido para a lixeira, é possível recuperar outras propriedades dele. 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 parâmetro fields, consulte Usar o parâmetro "fields".

Os seguintes campos 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 principal movida para a lixeira. Ao usar trashed com o método update, o status do arquivo é definido, mas o método get recupera o status do arquivo.
  • explicitlyTrashed: Indica se o arquivo foi movido explicitamente para a lixeira, em vez de ser movido recursivamente, de uma pasta mãe.

Os campos a seguir só são preenchidos 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 explicitamente, o usuário que fez isso.

Recuperar um arquivo da lixeira

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

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

O exemplo de código a seguir mostra como usar 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

É possível excluir permanentemente todos os arquivos do Drive que o usuário moveu para a lixeira usando o método emptyTrash no recurso files. 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 a solicitação for bem-sucedida, o corpo da resposta vai conter 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 continuem tendo acesso ao arquivo, transfira a propriedade para alguém antes da exclusão.

Para excluir um arquivo de drive compartilhado, o usuário precisa ter role=organizer na pasta principal. Se você estiver excluindo uma pasta, todos os descendentes dela 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 delete no recurso files. Para excluir um arquivo do drive compartilhado, você também precisa definir o parâmetro booleano supportsAllDrives da consulta como true. Para mais informações, consulte Implementar suporte a drives compartilhados.

Se a solicitação for bem-sucedida, o corpo da resposta vai conter 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 função necessárias para mover para a lixeira ou excluir arquivos e pastas. 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 método get 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 parâmetro fields, consulte Usar o parâmetro "fields".

Os seguintes campos são preenchidos para todos os arquivos:

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

Limites de arquivos e pastas

Os arquivos e pastas do Drive, assim como as pastas do drive compartilhado, têm alguns limites de armazenamento.

Em geral, depois que o limite de itens é atingido, a única maneira de criar mais espaço é excluir permanentemente 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 o seguinte: