É 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 detrashedcom o métodoupdatedefina o status do arquivo, o métodogetrecupera 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 detrashedDate.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:
capabilities.canTrash: indica se o usuário atual pode mover esse arquivo para a lixeira.capabilities.canUntrash: indica se o usuário atual pode restaurar esse arquivo da lixeira.capabilities.canDelete: indica se o usuário atual pode excluir esse arquivo.capabilities.canRemoveChildren: indica se o usuário atual pode remover filhos dessa pasta. Isso éfalsequando o item não é uma pasta.
Os campos a seguir são preenchidos apenas para arquivos localizados em um drive compartilhado:
capabilities.canTrashChildren: indica se o usuário atual pode mover filhos dessa pasta para a lixeira. Isso éfalsequando o item não é uma pasta.capabilities.canDeleteChildren: indica se o usuário atual pode excluir filhos dessa pasta. Isso éfalsequando o item não é uma pasta.
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:
Temas relacionados
- Excluir arquivos no Google Drive
- Diferenças entre a API Drive compartilhado e a API Meu Drive
- Papéis e permissões