Observação:

Excluir objetos do serviço em massa/lote do serviço Object Storage

Introdução

Existem maneiras diferentes de excluir objetos do Object Storage. Você pode executar operações de exclusão de objeto único, por meio da console, da CLI ou da API/SDK. No entanto, o problema se torna não-comum ao excluir um número extremamente grande de objetos. Este tutorial descreve os seguintes métodos que podem ser usados para exclusão em massa/em lote de objetos:

Pontos a serem Anotados

Observe os seguintes pontos para excluir objetos em massa usando a CLI do OCI:

Observe os seguintes pontos para excluir objetos em massa usando o OLM:

Que método devo usar?

A principal diferença entre os dois métodos de exclusão de objeto em massa/vinculado está na implementação. Para reiterar, o comando de exclusão em massa da CLI do OCI é implementado de forma síncrona no lado do cliente, enquanto o OLM é implementado de forma assíncrona no lado do servidor. Como regra geral, use os critérios a seguir para determinar qual método usar.

Usar exclusão em massa da CLI se: Usar exclusão em massa do OLM se:
A exclusão pode ocorrer de forma síncrona (porque a CLI é síncrona) A exclusão deve ocorrer de forma assíncrona (porque o OLM é assíncrono)
Exclusão única Exclusão recorrente que deve acontecer para sempre
Há um pequeno número de objetos Há um grande número de objetos
A exclusão do objeto precisa ocorrer imediatamente A exclusão do objeto pode aguardar (tem um curto atraso)

Objetivo

Pré-requisitos

Método 1: Exclua objetos em massa/lote via CLI do OCI

Você pode excluir em massa objetos da CLI do OCI usando qualquer um dos métodos a seguir.

Excluir objetos em massa dentro de um bucket

Você pode usar a CLI do OCI para fazer a exclusão em massa de objetos dentro de um bucket usando o seguinte comando:

oci os object bulk-delete -bn <bucket_name>

Observação: Se você não quiser executar a operação de exclusão, mas quiser ver um plano de quais objetos serão excluídos, use a opção --dry-run.

oci os object bulk-delete -bn <bucket_name> --dry-run
{
  "delete-failures": {},
  "deleted-objects": [
    "1000_sales.csv",
    "rick_and_morty.json"
  ]
}

Excluir objetos em massa por prefixo

Você pode especificar a exclusão somente de objetos que correspondam a um prefixo específico, adicionando a opção --prefix. O comando a seguir exclui todos os objetos que correspondem ao prefixo <some_prefix>.

oci os object bulk-delete -bn <bucket_name> --prefix <some_prefix>

Por exemplo, se você quiser excluir objetos que correspondam ao prefixo "rick", use o seguinte comando:

oci os object bulk-delete -bn test-bucket-1 --prefix rick
WARNING: This command will delete at least 1 objects. Are you sure you wish to continue? [y/N]: y
Deleted object rick_and_morty.json  [####################################]  100%
{
    "delete-failures": {},
    "deleted-objects": [
    "rick_and_morty.json"
    ]
}

Excluir objetos em massa por padrão (Inclusão)

Você pode especificar a exclusão somente de objetos que correspondam a um padrão específico, adicionando a opção --include. O comando a seguir exclui todos os objetos que correspondem ao padrão <some_pattern>.

oci os object bulk-delete -bn <bucket_name> --include <some_pattern>

Por exemplo, se você quiser excluir somente objetos que sejam do tipo de arquivo JSON, use o seguinte comando:

oci os object bulk-delete -bn test-bucket-1 --include "*.json"
WARNING: This command will delete at least 1 objects. Are you sure you wish to continue? [y/N]: y
Deleted object rick_and_morty.json  [####################################]  100%
{
    "delete-failures": {},
    "deleted-objects": [
    "rick_and_morty.json"
    ]
}

Excluir objetos em massa por Padrão Inverso (Exclusão)

Você pode especificar a exclusão somente de objetos que não correspondem a um padrão específico, adicionando a opção --exclude. O comando a seguir exclui todos os objetos, exceto aqueles que correspondem ao padrão <some_pattern>.

oci os object bulk-delete -bn <bucket_name> --exclude <some_pattern>

Por exemplo, se você quiser excluir todos os objetos, exceto os que são do tipo de arquivo JSON, use o seguinte comando:

oci os object bulk-delete -bn test-bucket-1 --exclude "*.json"
WARNING: This command will delete at least 1 objects. Are you sure you wish to continue? [y/N]: y
Deleted object 1000_sales.csv  [####################################]  100%  
{
    "delete-failures": {},
    "deleted-objects": [
    "1000_sales.csv"
    ]
}

Método 2: Excluir objetos em massa/lote via OLM

Além da CLI do OCI, você também pode usar o OLM - Gerenciamento do Ciclo de Vida de Objetos - recurso para exclusão em massa de objetos. O recurso OLM permite criar regras de ciclo de vida que especificam a ação a ser tomada se uma condição específica for atendida. Por exemplo, podemos especificar objetos com mais de 30 dias para serem excluídos.

Criar uma regra de ciclo de vida de exclusão em massa na Console/CLI do OCI

É possível criar regras de ciclo de vida por meio da Console do OCI. Isso pode ser feito clicando em um bucket e na guia Regras de Política de Ciclo de Vida do lado. Em seguida, uma caixa de diálogo deve ser exibida, permitindo que o usuário configure sua regra.

Caixa de Diálogo Criar Console de Regra do Ciclo de Vida

Também é possível criar regras de ciclo de vida por meio da CLI do OCI. O comando a seguir é um exemplo de criação de uma regra de Ciclo de Vida usando a CLI do OCI. A regra exclui todos os objetos com mais de 10 dias.

oci os object-lifecycle-policy put --bucket-name test-bucket-1 --items '[
    {
        "action": "DELETE",
        "isEnabled": true,
        "name": "lifecycle-rule-delete-all",
        "target": "objects",
        "timeAmount": 10,
        "timeUnit": "DAYS"
    }
]'

Criar uma regra de ciclo de vida de exclusão em massa por prefixo

Na Console do OCI, você pode especificar filtros de Nome de Objeto para objetos que serão excluídos, com base em uma condição específica. Ele pode tratar a correspondência de prefixo de nome de objeto. A captura de tela abaixo mostra uma regra de ciclo de vida que excluirá todos os objetos com o prefixo test/.

Criar Prefixo da Console da Regra de Ciclo de Vida

Semelhante à console, a CLI do OCI também pode especificar quais objetos excluir por meio de correspondência de prefixo.

oci os object-lifecycle-policy put --bucket-name <test_bucket> --items '[
    {
        ...
        "objectNameFilter": {
            "exclusionPatterns": [],
            "inclusionPatterns": [],
            "inclusionPrefixes": [
                <some_prefix>
            ]
        },
        ...
    }
]'

Por exemplo, o comando da CLI do OCI cria/atualiza uma regra de ciclo de vida que excluirá todos os objetos com o prefixo test/. Lembre-se de que o argumento para a opção –-items deve ser uma lista JSON válida.

oci os object-lifecycle-policy put --bucket-name test-bucket-1 --items '[
    {
        "action": "DELETE",
        "isEnabled": true,
        "name": "lifecycle-rule-delete-all",
        "objectNameFilter": {
            "exclusionPatterns": [],
            "inclusionPatterns": [],
            "inclusionPrefixes": [
                "test/"
            ]
        },
        "target": "objects",
        "timeAmount": 10,
        "timeUnit": "DAYS"
    }
]'

Criar uma regra de ciclo de vida de exclusão em massa por Correspondência de Padrões (Inclusões)

Na Console do OCI, você pode especificar Filtros de Nome de Objeto para excluir objetos por correspondência de padrão (inclusões). A captura de tela abaixo mostra uma regra de ciclo de vida que excluirá todos os tipos de arquivo .doc.

Criar Inclusão do Padrão da Console de Regra do Ciclo de Vida

Você também pode excluir apenas arquivos que correspondam a um padrão específico da CLI do OCI.

oci os object-lifecycle-policy put --bucket-name <bucket_name> --items '[
    {
        ...
        "objectNameFilter": {
            "exclusionPatterns": [],
            "inclusionPatterns": [
                <some_pattern>
            ],
            "inclusionPrefixes": []
        },
        ...
    }
]'

Por exemplo, o comando da CLI do OCI cria/atualiza uma regra de Ciclo de Vida que excluirá todos os tipos de arquivo .doc.

oci os object-lifecycle-policy put --bucket-name test-bucket-1 --items '[
    {
        "action": "DELETE",
        "isEnabled": true,
        "name": "lifecycle-rule-delete-all",
        "objectNameFilter": {
            "exclusionPatterns": [],
            "inclusionPatterns": [
                "*.doc"
            ],
            "inclusionPrefixes": []
        },
        "target": "objects",
        "timeAmount": 10,
        "timeUnit": "DAYS"
    }
]'

Criar uma regra de ciclo de vida de exclusão em massa por Correspondência Inversa de Padrões (Exclusões)

Na Console do OCI, você pode especificar Filtros de Nome de Objeto para excluir objetos por correspondência de padrão inverso (exclusão) - ou seja, excluir todos os objetos, exceto aqueles que correspondem ao padrão. A captura de tela abaixo mostra uma regra de ciclo de vida que excluirá tudo, exceto os tipos de arquivo .txt.

Criar Exclusão do Padrão da Console da Regra do Ciclo de Vida

Você também pode excluir todos os arquivos, exceto aqueles que correspondem a um padrão específico da CLI do OCI.

oci os object-lifecycle-policy put --bucket-name <bucket_name> --items '[
    {
        ...
        "objectNameFilter": {
            "exclusionPatterns": [
                <some_pattern>
            ],
            "inclusionPatterns": [],
            "inclusionPrefixes": []
        },
        ...
    }
]'

Por exemplo, o comando da CLI do OCI cria/atualiza uma regra de ciclo de vida que excluirá cada objeto, exceto os tipos de arquivo .txt.

oci os object-lifecycle-policy put --bucket-name test-bucket-1 --items '[
    {
        "action": "DELETE",
        "isEnabled": true,
        "name": "lifecycle-rule-delete-all",
        "objectNameFilter": {
            "exclusionPatterns": [
                "*.txt"
            ],
            "inclusionPatterns": [],
            "inclusionPrefixes": []
        },
        "target": "objects",
        "timeAmount": 10,
        "timeUnit": "DAYS"
    }
]'

Agradecimentos

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal YouTube do Oracle Learning. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.