Nesta página, você aprenderá como excluir objetos em buckets do Cloud Storage. Para uma visão geral dos métodos de exclusão de objetos, consulte Sobre a exclusão de objetos.
Funções exigidas
Para receber as permissões necessárias para excluir objetos, peça ao administrador que conceda a você os seguintes papéis do IAM no bucket que contém os objetos que você quer excluir:
-
Exclua objetos usando a Google Cloud CLI ou as APIs REST:
Usuário de objetos do Storage (
roles/storage.objectUser) -
Exclua objetos usando o console Google Cloud :
Administrador do Storage (
roles/storage.admin) -
Outra opção é excluir objetos usando o console Google Cloud :
Leitor (
roles/viewer) e usuário de objetos do Storage (roles/storage.objectUser)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para excluir objetos. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para excluir objetos:
-
Excluir objetos:
storage.objects.delete -
Liste objetos usando o console Google Cloud ou a flag
--recursiveou caracteres curinga na Google Cloud CLI:storage.objects.list -
Liste os buckets usando o console Google Cloud :
storage.buckets.list
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Excluir um único objeto
Nesta seção, mostramos como excluir um objeto por vez.
Siga estas etapas para excluir um único objeto:
Console
- No console do Google Cloud , acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome daquele que contém os objetos que você quer excluir.
A página Detalhes do bucket é aberta, com a guia Objetos selecionada.
Navegue até o objeto, que pode estar localizado em uma pasta.
Marque a caixa de seleção do objeto que você quer excluir.
Clique em Excluir e, em seguida, clique em Excluir na caixa de diálogo exibida.
Linha de comando
Use o comando gcloud storage rm da Google Cloud CLI:
gcloud storage rm gs://BUCKET_NAME/OBJECT_NAME
Em que:
BUCKET_NAMEé o nome do bucket que contém o objeto que você quer excluir. Por exemplo,my-bucket.OBJECT_NAMEé o nome do objeto que você quer excluir. Por exemplo,pets/dog.png.
Se a operação for bem-sucedida, a resposta será semelhante a esta:
Removing objects: Removing gs://example-bucket/file.txt... Completed 1/1
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
C#
Saiba mais na documentação de referência C# da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Go
Saiba mais na documentação de referência Go da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Java
Saiba mais na documentação de referência Java da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Node.js
Saiba mais na documentação de referência Node.js da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
PHP
Saiba mais na documentação de referência PHP da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Python
Saiba mais na documentação de referência Python da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Ruby
Saiba mais na documentação de referência Ruby da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Rust
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization.Use
curlpara chamar a API JSON com uma solicitaçãoDELETE:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
Em que:
BUCKET_NAMEé o nome do bucket que contém o objeto que você quer excluir. Por exemplo,my-bucket.OBJECT_NAMEé o nome codificado por URL do objeto que você quer excluir. Por exemplo,pets/dog.png, codificado por URL comopets%2Fdog.png.
API XML
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization.Use
curlpara chamar a API XML com uma solicitaçãoDELETE Object:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
Em que:
BUCKET_NAMEé o nome do bucket que contém o objeto que você quer excluir. Por exemplo,my-bucket.OBJECT_NAMEé o nome codificado por URL do objeto que você quer excluir. Por exemplo,pets/dog.png, codificado por URL comopets%2Fdog.png.
Excluir objetos em massa
Esta seção mostra como excluir objetos em massa selecionando-os no consoleGoogle Cloud , excluindo objetos com um prefixo comum usando ferramentas de linha de comando ou especificando uma lista de objetos em solicitações de API ou biblioteca de cliente.
Console
- No console do Google Cloud , acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome daquele que contém os objetos que você quer excluir.
A página Detalhes do bucket é aberta, com a guia Objetos selecionada.
Navegue até o objeto, que pode estar localizado em uma pasta.
Marque a caixa de seleção de cada objeto que você quer excluir.
Você pode marcar a caixa de seleção de uma pasta, o que exclui todos os objetos contidos nela.
Clique em Excluir e, em seguida, clique em Excluir na caixa de diálogo exibida.
Se você excluir muitos objetos de uma vez, poderá acompanhar o progresso da exclusão clicando no ícone Notificações no console do Google Cloud . O consoleGoogle Cloud pode excluir em massa até vários milhões de objetos e faz isso em segundo plano.
Para saber como acessar informações detalhadas de erro sobre operações do Cloud Storage com falha no console Google Cloud , consulte Solução de problemas.
Linha de comando
CLI do Google Cloud
Para excluir grupos de objetos com o mesmo prefixo, como
objetos com nomes que imitem uma estrutura de pastas, use a
flag --recursive com gcloud storage rm:
gcloud storage rm --recursive gs://BUCKET_NAME/PREFIX
Em que:
BUCKET_NAMEé o nome do bucket. Por exemplo,my-bucket.PREFIXé o prefixo comum dos objetos que você quer excluir. Por exemplo,pets/.
CLI do Amazon S3
Para excluir vários objetos no Cloud Storage usando a CLI do Amazon S3, use o comando aws s3api delete-objects. Você precisará redirecionar a solicitação para a API XML de exclusão de vários objetos do Cloud Storage definindo a flag --endpoint-url como storage.googleapis.com. Para ver definições detalhadas de parâmetros e o comportamento da API delete-objects, consulte a documentação de referência do comando delete-objects da CLI do Amazon S3.
Bibliotecas de cliente
O Cloud Storage oferece suporte à API XML de exclusão de vários objetos pela interface compatível com o Amazon S3.
Para usar bibliotecas de cliente compatíveis com o Amazon S3 para exclusão em massa de objetos, direcione sua solicitação ao endpoint Google Cloud definindo o URL do endpoint como https://storage.googleapis.com na configuração do cliente. Essa abordagem pode ser útil se você estiver realizando alguma das seguintes tarefas:
- Aproveitar bases de código ou ferramentas já criadas para o Amazon S3.
- Manter a consistência em ambientes multicloud que incluem o Amazon S3 e o Cloud Storage.
O exemplo a seguir mostra como inicializar um cliente usando uma biblioteca Boto3 para interagir com o Cloud Storage:
import boto3
def main():
# Initialize the S3 client to point to the Google Cloud Storage endpoint
client = boto3.client(
service_name='s3',
endpoint_url='https://storage.googleapis.com',
aws_access_key_id='YOUR_ACCESS_ID',
aws_secret_access_key='YOUR_SECRET',
)
# Perform delete operations as defined in the library's documentation
# response = client.delete_objects(Bucket='BUCKET_NAME', Delete={'Objects': [...]})
Para ver assinaturas de métodos e definições de parâmetros específicos, consulte a documentação do delete_objects Boto3.
API XML
Para excluir até 1.000 objetos em uma única solicitação usando a API XML, siga estas etapas:
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization.Crie um documento XML que especifique os objetos a serem excluídos.
Para uma lista completa de configurações, consulte Excluir vários objetos na documentação de referência da API XML. As configurações comuns a serem incluídas no arquivo XML são as seguintes:
<Delete> <Object> <Key>OBJECT_NAME</Key> <VersionId>VERSION_ID</VersionId> </Object> ... <Quiet>QUIET_RESPONSE_BOOLEAN</Quiet> </Delete>Em que:
OBJECT_NAMEé o nome codificado por URL do objeto. Por exemplo,pets/dog.png, codificado em URL comopets%2Fdog.png. É possível especificar até 1.000 objetos no arquivo XML.VERSION_IDé o ID da versão do objeto. Por exemplo,11111.QUIET_RESPONSE_BOOLEANcontrola a verbosidade da resposta da API:- Defina como
Falsepara uma resposta detalhada. A resposta inclui detalhes de todos os objetos, sejam eles excluídos ou não. A operação de exclusão de vários objetos usando a API XML não é atômica. Se uma solicitação resultar em falhas parciais, alguns objetos poderão ser excluídos, mas outros não. Por isso, recomendamos usar a resposta detalhada para identificar todas as exclusões de objetos. Se você tiver os registros de auditoria de acesso a dados ativados, também poderá analisar os registros de auditoria para ver detalhes de falhas. - Defina como
Truepara uma resposta silenciosa. O corpo da resposta não inclui informações sobre os objetos excluídos.
- Defina como
Use
curlpara enviar uma solicitação de bucketPOSTà API XML com o parâmetro de consulta?deletee seu arquivo XML:curl -X POST --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?delete"
Em que:
XML_FILE_NAMEé o nome do arquivo XML que você criou.BUCKET_NAMEé o nome do bucket que contém os objetos a serem excluídos.Se o modo
Quietestiver desativado, uma resposta detalhada poderá ser semelhante a esta:<DeleteResult> <Deleted> <Key>images/photo1.jpg</Key> <VersionId>11111</VersionId> </Deleted> <Deleted> <Key>documents/report.pdf</Key> <VersionId>22222</VersionId> </Deleted> <Error> <Code>AccessDenied</Code> <Key>private/financial_data.xlsx</Key> <Message>Access Denied. You don't have permission to delete this object.</Message> <VersionId>33333</VersionId> </Error> </DeleteResult>
Se o modo
Quietestiver ativado, a resposta vai listar apenas os objetos que não foram excluídos. Se todos os objetos forem excluídos com sucesso, uma tag<DeleteResult/>vazia será retornada. Confira a seguir um exemplo de resposta silenciosa em que ocorreu um erro:<DeleteResult> <Error> <Code>AccessDenied</Code> <Key>private/financial_data.xlsx</Key> <Message>Access Denied. You don't have permission to delete this object.</Message> <VersionId>33333</VersionId> </Error> </DeleteResult>
Excluir até bilhões de objetos
Para excluir milhões ou bilhões de objetos com um único job de exclusão, use as operações em lote do Storage. Para criar um job, especifique os objetos a serem excluídos, fornecendo uma lista de objetos em um arquivo de manifesto ou usando prefixos de objeto. Depois de especificar a lista de objetos, crie um job de operação em lote para excluir os objetos.
Excluir objetos automaticamente usando regras de ciclo de vida de objetos
Se você quiser que os objetos sejam excluídos automaticamente quando atenderem aos critérios especificados, como idade ou classe de armazenamento, use o Gerenciamento do ciclo de vida de objetos. Por exemplo, é possível definir uma regra de ciclo de vida para excluir registros com mais de 30 dias.
Solicitações de exclusão de objetos em lote com a API JSON
Para reduzir o número de conexões HTTP necessárias ao excluir muitos objetos com a API JSON, use solicitações em lote da API JSON. É possível agrupar até 100 chamadas de API em uma única solicitação HTTP para reduzir a sobrecarga da rede.
A seguir
- Saiba como restaurar objetos excluídos de maneira reversível se você excluiu um objeto por engano.
- Se você usa o controle de versões de objetos, saiba que a exclusão de um objeto pode torná-lo não atual em vez de excluí-lo permanentemente. Saiba como gerenciar ou excluir permanentemente versões não atuais.
- Configure o Gerenciamento do ciclo de vida de objetos para automatizar exclusões futuras.
- Exclua um bucket se não precisar mais dele.