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
O Object Storage Service (OSS) está ativado.
Crie um bucket.
O ossutil 2.0 está instalado.
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 quex-oss-meta-é um prefixo fixo que indica o início dos metadados do usuário,aaaindica 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 |
|
Chame a operação
|
-
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
examplebucketpara 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
examplebucketcom base no atributo de metadadoscontent-type:ossutil ls oss://examplebucket --metadata-include "content-type=text/plain"NotaPara filtrar objetos pelo nome usando padrões curinga, use
--includeem 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