Você pode remover arquivos e pastas do Meu Drive e dos drives compartilhados. Você tem duas opções para fazer isso: enviar para a lixeira ou excluir.
Você pode mover arquivos e pastas para a lixeira e restaurá-los até 30 dias depois de descartá-los. 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.
Lixo
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 vê-los na lixeira do proprietário. Se você tentar enviar para a lixeira um arquivo que não é seu, 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 parâmetro 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, e não a usuários individuais. Para mais informações sobre como retornar campos usando o parâmetro fields
, consulte Retornar campos específicos para um arquivo.
Se você não for o proprietário do arquivo, mas ainda quiser uma cópia dele, siga um seguinte:
- 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
files.update
e defina o
campo trashed
como True
. Para enviar um arquivo de drive compartilhado para a lixeira, defina também o parâmetro de consulta supportsAllDrives
como True
. Para mais informações, consulte
Implementar a compatibilidade com drives compartilhados.
Se for 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
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
enviar para a lixeira.
Determinar as propriedades de um arquivo na lixeira
Quando um arquivo é movido para a lixeira, é possível recuperar outras
propriedades files
. Você pode usar o método
files.get
e incluir os
campos abaixo no parâmetro fields
. Para mais informações, consulte Retornar campos específicos de um arquivo.
Os seguintes campos são preenchidos para todos os arquivos:
trashed
: se o arquivo foi enviado para a lixeira, seja explicitamente ou de uma pasta pai para a lixeira. Enquanto o uso detrashed
com o métodofiles.update
define o status do arquivo, o métodofiles.get
recupera o status do arquivo.explicitlyTrashed
: se o arquivo foi explicitamente enviado para a lixeira, em vez de recursivamente, de uma pasta pai.
Os campos a seguir são preenchidos apenas nos arquivos localizados em um drive compartilhado:
trashedTime
: a hora em que o item foi enviado para a lixeira, no formato de data RFC 3339 (em inglês). Se você estiver usando a versão anterior da API Drive v2, esse campo será chamado detrashedDate
.trashingUser
: se o arquivo foi explicitamente movido 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 um drive compartilhado da lixeira, você também precisa definir o parâmetro de consulta supportsAllDrives
como True
. Para mais informações, consulte
Implementar a compatibilidade com drives compartilhados.
Se for 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 não removido 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 da lixeira.
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, defina também o parâmetro de consulta driveId
como o ID do drive compartilhado.
Se a solicitação for bem-sucedida, o corpo da resposta conterá uma instância vazia.
O exemplo de código a seguir mostra como usar o 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
Você pode excluir permanentemente um arquivo do Drive sem movê-lo para a lixeira. Depois de excluir 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, poderá 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 de propriedade do 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 drive compartilhado, defina também o parâmetro de consulta supportsAllDrives
como True
. Para mais informações, consulte Implementar o suporte a drives
compartilhados.
Se for 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 pela 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 | ✔ | ✔ | ✔ | |||
Recuperar arquivos e pastas da lixeira | ✔ | ✔ | ✔ | |||
Esvaziar a lixeira | ✔ | ✔ | ||||
Excluir permanentemente um arquivo ou uma pasta | ✔ | ✔ | ||||
Excluir arquivos e pastas em um drive compartilhado [*] | ✔ |
Recursos
Um recurso files
contém um conjunto
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 parâmetro 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 para um arquivo.
Os seguintes campos 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 o arquivo.capabilities.canRemoveChildren
: se o usuário atual pode remover filhos dessa pasta. É falso quando o item não é uma pasta.
Os campos a seguir são preenchidos apenas nos arquivos localizados em um drive compartilhado:
capabilities.canTrashChildren
: se o usuário atual pode descartar os filhos dessa pasta. É falso quando o item não é uma pasta.capabilities.canDeleteChildren
: se o usuário atual pode excluir os filhos dessa pasta. É falso quando o item não é uma pasta.
Temas relacionados
- Excluir e restaurar arquivos no Google Drive
- Diferenças entre o drive compartilhado e a API My Drive
- Papéis e permissões