Usar objetos excluídos de forma reversível

Visão geral Configuração

Nesta página, descrevemos como listar, acessar e restaurar objetos excluídos de maneira reversível.

Antes de começar

Para receber as permissões necessárias para listar, acessar e restaurar objetos excluídos de maneira reversível, peça ao administrador para conceder a você o papel do IAM de Administrador do Storage (roles/storage.admin) no bucket, na pasta gerenciada ou no projeto.

Esse papel predefinido contém as permissões necessárias para listar, acessar e restaurar objetos excluídos de maneira reversível. Para conferir 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 listar, acessar e restaurar objetos excluídos de maneira reversível:

  • storage.buckets.get. Essa permissão é necessária apenas para usar a CLI do Google Cloud a fim de executar as instruções desta página.
  • storage.buckets.list. Essa permissão é necessária apenas para usar a CLI do Google Cloud a fim de executar as instruções desta página.
  • storage.objects.get. Essa permissão é necessária apenas para usar a CLI do Google Cloud a fim de executar as instruções desta página.
  • storage.objects.list
  • storage.objects.restore
  • storage.objects.create
  • storage.objects.delete. Essa permissão só é necessária para restaurar objetos de uma forma que faça com que os objetos sejam substituídos.
  • storage.buckets.restore. Essa permissão é necessária apenas para a restauração em massa de objetos excluídos de maneira reversível.

Para informações sobre como conceder papéis nos buckets, consulte Usar o IAM com buckets. Para informações sobre como conceder papéis em projetos, consulte Gerenciar acesso a projetos.

Para gerenciar operações de longa duração iniciadas por métodos de exclusão temporária, talvez seja necessário ter outras funções e permissões. Consulte papéis necessários para operações de longa duração para saber mais.

Listar todos os objetos excluídos de forma reversível em um bucket

Use as instruções a seguir para listar todos os objetos excluídos de maneira reversível em um bucket:

Console

  1. No Console do Google Cloud, acesse a página Buckets do Cloud Storage.

    Acessar buckets

  2. Na lista de buckets, clique no nome do bucket que contém os objetos excluídos de maneira reversível. A página Detalhes do bucket é aberta, com a guia Objetos selecionada.

  3. Na lista Mostrar, selecione Somente objetos excluídos de forma reversível. Uma lista de objetos excluídos de maneira reversível será exibida.

Linha de comando

Para exibir uma lista de todos os objetos excluídos de maneira reversível em um bucket, use o comando gcloud storage ls com as flags --soft-deleted e --recursive:

  gcloud storage ls gs://BUCKET_NAME --soft-deleted --recursive

Substitua:

  • BUCKET_NAME: o nome do bucket Por exemplo, my-bucket.

APIs REST

API JSON

  1. Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho Authorization.

  2. Use cURL para chamar a API JSON com uma solicitação para listar objetos que usa o parâmetro de consulta ?softDeleted:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?softDeleted=true"

    Em que BUCKET_NAME é o nome do bucket pertinente. Por exemplo, my-bucket.

Ver todas as versões de um objeto excluídas de maneira reversível

Use as instruções a seguir para conferir todas as versões excluídas de forma reversível de um objeto específico no seu bucket:

Console

  1. No Console do Google Cloud, acesse a página Buckets do Cloud Storage.

    Acessar buckets

  2. Na lista de buckets, clique no nome do bucket que contém o objeto com as versões que você quer ver de maneira reversível. A página Detalhes do bucket é aberta, com a guia Objetos selecionada.

  3. Clique no objeto de que você quer ver todas as versões excluídas de forma reversível. A página Detalhes do objeto é exibida.

  4. Clique na guia Histórico de versões.

  5. Na lista Mostrar, selecione Somente objetos excluídos de forma reversível. Uma lista de todas as versões excluídas de maneira reversível desse objeto é exibida.

Linha de comando

Para exibir uma lista de todas as versões de um objeto em um bucket que foram excluídas de maneira reversível, use o comando gcloud storage ls:

  gcloud storage ls gs://BUCKET_NAME/OBJECT_NAME --soft-deleted

Substitua:

  • BUCKET_NAME: o nome do bucket Por exemplo, my-bucket.
  • OBJECT_NAME: o nome do objeto que contém todas as versões dele.

APIs REST

API JSON

  1. Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho Authorization.

  2. Use cURL para chamar a API JSON com uma solicitação para listar objetos que usa o parâmetro de consulta ?softDeleted:

    curl -X GET \
      -H "Authorization: Bearer OAUTH2_TOKEN" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?matchGlob=OBJECT_NAME&softDeleted=true"

    Substitua:

    • BUCKET_NAME: o nome do bucket Por exemplo, my-bucket.
    • OBJECT_NAME: o nome do objeto em que você quer ver todas as versões.

Restaurar um objeto excluído de maneira reversível

É possível restaurar uma versão específica de um objeto excluído de maneira reversível no seu bucket. Não é possível restaurar objetos em um bucket excluído de maneira reversível. Para restaurar objetos em um bucket excluído de maneira reversível, primeiro restaure o bucket.

Use as instruções a seguir para restaurar um objeto excluído de forma reversível:

Console

  1. No Console do Google Cloud, acesse a página Buckets do Cloud Storage.

    Acessar buckets

  2. Na lista de buckets, clique no nome do bucket que contém os objetos excluídos de forma reversível que você quer restaurar. A página Detalhes do bucket é aberta, com a guia Objetos selecionada.

  3. Na lista Mostrar, selecione Somente objetos excluídos de forma reversível.

  4. Navegue até o objeto, que pode estar localizado em uma pasta.

  5. Clique no objeto excluído de maneira reversível. A página Detalhes do objeto é exibida.

  6. Na lista Mostrar, selecione Somente objetos excluídos de forma reversível. Uma lista de todas as versões excluídas de maneira reversível desse objeto é exibida.

  7. Para restaurar uma versão específica de um objeto excluída de forma reversível, clique em Restaurar ao lado dessa versão. O painel da versão do objeto de restauração é aberto.

  8. Clique em Confirmar.

Linha de comando

Para restaurar uma versão excluída de forma reversível de um objeto, use o comando gcloud storage restore:

  gcloud storage restore gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER

Substitua:

  • BUCKET_NAME: o nome do bucket Por exemplo, my-bucket.
  • OBJECT_NAME: o nome do objeto para o qual você quer ver todas as versões.
  • GENERATION_NUMBER: o número de geração do objeto excluído de maneira reversível que você quer restaurar. Por exemplo, 1560468815691234. Se você não especificar o número de geração, a versão mais recente será restaurada.

Para mais opções de restauração de vários objetos em massa, incluindo a restauração de todas as versões de um objeto com a flag all-versions, consulte a referência gcloud storage restore.

APIs REST

API JSON

  1. Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho Authorization.

  2. Use cURL para chamar a API JSON com uma solicitação de POST Object:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/restore?generation=GENERATION_NUMBER"

    Em que:

    • BUCKET_NAME é o nome do bucket pertinente. Por exemplo, my-bucket.
    • OBJECT_NAME é o nome do objeto excluído de maneira reversível que você quer restaurar. Por exemplo, cat.jpeg.
    • GENERATION_NUMBER é o número de geração do objeto excluído de maneira reversível que você quer restaurar. Por exemplo, 1560468815691234.

Restaure em massa objetos excluídos de maneira reversível em um bucket

Se você quiser restaurar um grande número de objetos ou não souber quais objetos específicos quer restaurar, use a operação de restauração em massa. As operações de restauração em massa ocorrem de maneira assíncrona e podem, em alguns casos, levar uma hora ou mais para começar.

A operação de restauração em massa inicia uma operação de longa duração em um bucket. É possível usar a Google Cloud CLI para receber e listar operações de longa duração para visualizar os detalhes e o status da operação de restauração em massa enquanto ela está em andamento.

Use as instruções a seguir para restaurar em massa objetos excluídos de maneira reversível em um bucket:

Console

  1. No Console do Google Cloud, acesse a página Buckets do Cloud Storage.

    Acessar buckets

  2. Na lista de buckets, encontre o bucket que contém os objetos que você quer restaurar.

  3. Clique no menu flutuante bucket () associado ao bucket e selecione Criar job de restauração.

    O painel Criar um job de restauração é aberto.

  4. Na seção Escolher quais objetos excluídos de maneira reversível serão restaurados, selecione o período de exclusão a partir do qual você quer restaurar objetos.

  5. (Opcional) Selecione Filtrar por padrão glob e insira um padrão para restaurar apenas objetos que atendam aos critérios desse padrão.

  6. (Opcional) Ative outros comportamentos de restauração na seção Opções de restauração.

  7. Clique em Criar.

Para acompanhar o progresso da operação de restauração em massa, clique no botão Notificações () no cabeçalho do console do Google Cloud.

Linha de comando

Para usar a operação de restauração em massa para restaurar todos os objetos em um bucket, use o comando gcloud storage restore.

O comando a seguir executa a operação de restauração em massa para restaurar de maneira assíncrona todos os objetos do bucket que foram excluídos durante um período específico:

  gcloud storage restore gs://BUCKET_NAME/** \
      --async --deleted-after-time=DELETED_AFTER_TIME \
      --deleted-before-time=DELETED_BEFORE_TIME

Substitua:

  • BUCKET_NAME: o nome do bucket Por exemplo, my-bucket.
  • DELETED_AFTER_TIME: um argumento opcional para especificar a data após a qual os objetos são restaurados. Por exemplo, 2022-12-01.
  • DELETED_BEFORE_TIME: um argumento opcional para especificar a data antes da restauração dos objetos. Por exemplo, 2022-12-21.

    Se bem-sucedido, o comando retornará o ID da operação de longa duração associada à operação de restauração em massa. É possível ver detalhes sobre a operação de longa duração ou cancelar a operação de longa duração para interromper a operação de restauração em massa antes que ela seja concluída. Para mais informações, consulte Usar operações de longa duração.

APIs REST

API JSON

  1. Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho Authorization.

  2. Use cURL para chamar a API JSON com uma solicitação de POST Object:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/bulkRestore"

    Em que BUCKET_NAME é o nome do bucket pertinente. Por exemplo, my-bucket.

Se bem-sucedido, o comando retornará o ID da operação de longa duração associada à operação de restauração em massa. É possível ver detalhes sobre a operação de longa duração ou cancelar a operação de longa duração para interromper a operação de restauração em massa antes que ela seja concluída. Para mais informações, consulte Usar operações de longa duração.

Usar operações de longa duração para restauração em massa

A operação de restauração em massa inicia uma operação de longa duração. É possível receber e listar operações de longa duração para visualizar os detalhes e o status de uma operação de restauração em massa ou excluir uma operação de longa duração para cancelar uma operação de restauração em massa enquanto ela está em andamento.

Para instruções sobre como usar operações de longa duração iniciadas de operações no Cloud Storage, como restauração em massa, consulte Usar operações de longa duração.

O exemplo a seguir mostra uma operação de longa duração retornada de uma operação de restauração em massa:

done: false
{
  "kind": "storage@operation",
  "name": "projects/_/buckets/my-bucket/operations/CiQyODRlMTY0My0wNGExLTQ3MWItOTE2Zi1hZmQ0ZmM4ZDc4MjQQAg",
  "metadata": {
    "@type": "type.googleapis.com/google.storage.v2.BulkRestoreObjectsMetadata",
    "commonMetadata": {
      "type": "bulk-restore-objects",
      "createTime": "2023-10-20T21:08:11.289Z",
      "updateTime": "2023-10-20T21:18:37.583Z",
      "endTime": "2023-10-20T21:18:37.583Z",
      "requestedCancellation": false,
      "progressPercent": -1,
    },
    "allow_overwrite": false,
    "matchGlobs": ["*"],
    "succeededCount": "0",
    "failedCount": "0",
    "skippedCount": "0",
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.storage.v2.BulkRestoreObjectsResponse"
  }
}

A seguir