Todos os produtos
Search
Central de documentação

Object Storage Service:Filter objects based on object metadata

Última atualização: Oct 19, 2026

Este tópico descreve como usar o ossutil 2.0 para filtrar objetos com base nos metadados do objeto.

Cenários

Navegar ou processar objetos diretamente em um bucket que contém um grande número de objetos consome muito tempo. Por esse motivo, o ossutil 2.0 oferece opções eficientes de filtragem baseadas em metadados, o que permite filtrar objetos com precisão com base em metadados específicos.

Pré-requisitos

Filtragem de objetos com base em metadados

O ossutil 2.0 permite filtrar objetos com base em metadados de maneira granular. Na maioria dos casos, esse recurso é ideal para vários comandos avançados, como ls para listar objetos, cp para fazer upload, baixe e copie objetos, e rm para exclua objetos. Filtre objetos com base em metadados, como o tipo de objeto, para aumentar a eficiência da filtragem.

Descrição dos parâmetros

Parâmetro

Tipo

Descrição

--metadata-include

stringArray

Regras de filtragem de metadados para incluir objetos. Assim, apenas os objetos que atendem às regras de metadados são exibidos.

--metadata-exclude

stringArray

Regras de filtragem de metadados para excluir objetos. Dessa forma, os objetos que atendem às regras de metadados não são exibidos.

--metadata-filter

stringArray

Regras de filtragem de metadados especificadas diretamente para oferecer uma lógica de correspondência mais flexível.

--metadata-filter-from

stringArray

Especifica que as regras de filtragem de metadados são lidas de um arquivo de regras externo, o que facilita o gerenciamento e a reutilização de regras de metadados complexas.

  • Ao usar o parâmetro --metadata-include, o ossutil adiciona automática e implicitamente a regra - **, que exclui outros tipos de objetos, ao final da lista.

  • Ao usar o parâmetro --metadata-filter "+ rule", o ossutil não adiciona regras de exclusão automaticamente. Ou seja, --metadata-include "rule" equivale a --metadata-filter "+ rule" + --metadata-filter "- **". Por exemplo, para filtrar com precisão todos os objetos de imagem JPEG em um bucket, especifique --metadata-filter "+ content-type=image/jpeg" --metadata-filter "- **".

  • Quando você processa vários arquivos de regras externos que contêm regras de filtragem de metadados ao mesmo tempo, o ossutil executa os arquivos externos da esquerda para a direita e as regras dentro de cada arquivo de cima para baixo. O ossutil ignora linhas em branco e linhas de comentário que começam com # ou ;.

  • Após encontrar a primeira correspondência de regra de metadados do objeto, o ossutil interrompe as verificações de regras subsequentes.

Tipos de metadados suportados

  • Classe de armazenamento. Para filtrar objetos por classe de armazenamento, especifique x-oss-storage-class=valor, em que o valor pode ser Standard, IA, Archive, ColdArchive ou DeepColdArchive.

  • Tipo de objeto. Para filtrar objetos por tipo de objeto, especifique x-oss-object-type=valor, em que o valor pode ser Normal, Multipart, Appendable ou Symlink.

  • Status de restauração. Para filtrar objetos por status de restauração, especifique x-oss-restore=valor, em que o valor é o status de restauração real pelo qual você deseja filtrar.

  • Tipo de conteúdo. Para filtrar objetos por tipo de conteúdo, especifique content-type=valor, em que o valor é o tipo de conteúdo real pelo qual você deseja filtrar.

  • Metadados do usuário. Para filtrar objetos por metadados do usuário, especifique x-oss-meta-aaa=value, em que x-oss-meta- é um prefixo fixo que indica o início dos metadados do usuário, aaa indica o nome da chave personalizada e o valor indica o valor dos metadados do usuário especificado com base nos seus requisitos de negócios. Exemplo: x-oss-meta-location:hangzhou.

Exemplos

Filtre objetos de uma classe de armazenamento específica

  • O exemplo a seguir mostra como filtrar objetos cuja classe de armazenamento é Standard no bucket examplebucket:

    ossutil ls oss://examplebucket --metadata-include "x-oss-storage-class=Standard"
  • O exemplo a seguir mostra como filtrar objetos cuja classe de armazenamento é Archive, Cold Archive e Deep Cold Archive no bucket examplebucket:

    ossutil ls oss://examplebucket --metadata-include "x-oss-storage-class=*Archive"

Filtre objetos no estado restaurado ou em restauração

Parâmetro

Tipo

Exemplo

Descrição

x-oss-restore

String

  • Restaurando: ongoing-request="true"

  • Restaurado: ongoing-request="false", expiry-date="Thu, 04 Jan 2024 03:28:54 GMT"

Chame a operação HeadObject e verifique se os objetos foram restaurados com base no cabeçalho de resposta x-oss-restore.

  • Se nenhuma operação de restauração for executada ou se o tempo limite for atingido, o cabeçalho de resposta x-oss-restore não será retornado.

  • Se uma operação de restauração estiver em andamento, ongoing-request="true" será exibido à direita do cabeçalho de resposta x-oss-restore.

  • Quando uma operação de restauração for concluída, ongoing-request="false" será exibido à direita do cabeçalho de resposta x-oss-restore. Nesse caso, expiry-date é incluído no cabeçalho de resposta x-oss-restore para indicar o horário após o qual o objeto não pode mais ser lido.

  • O exemplo a seguir mostra como filtrar objetos em estado de restauração no bucket examplebucket. Os dois asteriscos (**) indicam que os objetos podem ser lidos a qualquer momento.

    ossutil ls oss://examplebucket --metadata-include "x-oss-restore=ongoing-request=\"true\"**"
  • O exemplo a seguir mostra como filtrar objetos no estado restaurado no bucket examplebucket. Os dois asteriscos (**) indicam que os objetos podem ser lidos a qualquer momento.

    ossutil ls oss://examplebucket --metadata-include "x-oss-restore=ongoing-request=\"false\"**"

Filtre objetos de um formato específico por meio de regras de inclusão e exclusão

  • O exemplo a seguir mostra como filtrar todos os objetos de imagem JPEG no bucket examplebucket para operações específicas ou análise de dados:

    ossutil ls oss://examplebucket --metadata-include "content-type=image/jpeg"
  • O comando a seguir lista todos os objetos de texto simples no bucket examplebucket com base no atributo de metadados content-type:

    ossutil ls oss://examplebucket --metadata-include "content-type=text/plain"
    Nota

    Para filtrar objetos pelo nome usando padrões curinga, use --include em vez de --metadata-include. Por exemplo: ossutil ls oss://examplebucket --include "*.txt".

Filtre objetos de um formato específico especificando regras de filtragem de metadados diretamente

O exemplo a seguir mostra como filtrar todos os objetos de imagem JPEG no bucket examplebucket. Especifique o parâmetro --metadata-filter para definir regras de filtragem de metadados diretamente e use os sinais de mais (+) e menos (-) para especificar as regras de inclusão e exclusão. O ossutil lista todos os objetos cujo Content-Type é image/jpeg no bucket examplebucket e exclui os objetos cujo Content-Type não é image/jpeg.

ossutil ls oss://examplebucket --metadata-filter "+ content-type=image/jpeg" --metadata-filter "- **"

Filtre objetos especificando regras de filtragem de metadados em um arquivo de regras externo

Se as regras de filtragem de metadados forem complexas ou se você precisar aplicar várias regras diferentes ao mesmo tempo, crie um arquivo de regras externo com antecedência para filtrar os objetos.

Para filtrar todos os objetos de imagem JPEG cuja classe de armazenamento é Standard usando o arquivo de regras externo chamado metadata_filters.txt, adicione o seguinte código de exemplo a esse arquivo:

# rules file: metadata_filters.txt
+ content-type=image/jpeg
+ x-oss-storage-class=Standard
- **

Use a opção --metadata-filter-from para chamar o arquivo de regras externo e filtrar os objetos:

ossutil ls oss://examplebucket --metadata-filter-from metadata_filters.txt