Referência do conjunto de regras

O Image Serving suporta um mecanismo de pré-processamento de solicitação simples, que se baseia em regras de substituição e correspondência de expressões regulares.

Coleções de regras de pré-processamento (rule sets) podem ser anexadas a catálogos de imagens ou ao catálogo padrão. As regras no catálogo padrão se aplicam somente se a solicitação não identificar um catálogo de imagem principal específico.

As regras de pré-processamento de solicitação podem modificar o caminho e as partes de consulta de solicitações antes de serem processadas pelo analisador do Servidor de Plataforma, incluindo manipular o caminho, adicionar comandos, alterar valores de comando e aplicar modelos ou macros. As regras também podem ser usadas para configurar e substituir determinados recursos de segurança que normalmente são controlados apenas com atributos de catálogo, como ofuscação de solicitação, marcação de água, bem como limitar o serviço a endereços IP de cliente específicos.

Os conjuntos de regras são armazenados como arquivos de documento XML. O caminho relativo ou absoluto do arquivo do conjunto de regras deve ser especificado em attribute::RuleSetFile.

Estrutura geral

 <?xml version="1.0" encoding="UTF-8"?> 
<ruleset> 
   <rule> 
      <expression> 
<varname>
  expression 
</varname></expression> 
      <substitution> 
<varname>
  substitution 
</varname></substitution> 
      <addressfilter> 
<varname>
  addressFilter 
</varname></addressfilter> 
      <header> 
<varname>
  headerValue 
</varname></header>  
   </rule> 
</ruleset>

Os elementos <?xml> e <ruleset> são sempre necessários em um arquivo XML de conjunto de regras válido, mesmo se nenhuma regra real estiver definida.

Um elemento <ruleset> contendo qualquer número de elementos <rule> é permitido.

O conteúdo dos arquivos de regras de pré-processamento faz distinção entre maiúsculas e minúsculas.

Validação do conjunto de regras

Uma cópia de RuleSet.xsd é fornecida na pasta de catálogo e deve ser usada para validar um arquivo de conjunto de regras antes de registrá-lo no arquivo catalog.ini. Observe que a Exibição de imagem usa uma cópia interna de RuleSet.xsd para validação.

Pré-processamento de URL

Antes de qualquer outro processamento, uma solicitação HTTP de entrada é parcialmente analisada para determinar qual catálogo de imagem deve ser aplicado. Depois que o catálogo é identificado, o conjunto de regras para o catálogo selecionado (ou o catálogo padrão, se nenhum catálogo específico foi identificado) é aplicado.

Os elementos <rule> são pesquisados na ordem especificada para uma correspondência com o conteúdo do elemento <expression> ( expression).

Se um <rule> for correspondido, o substitution opcional será aplicado e a sequência de solicitação modificada será passada para o analisador de solicitação do servidor para processamento normal.

Se nenhuma correspondência bem-sucedida for feita quando o fim de <ruleset> for atingido, a solicitação será passada para o analisador sem modificação.

O atributo OnMatch

O comportamento padrão pode ser modificado com o atributo OnMatch do elemento <rule>. OnMatch pode ser definido como break (padrão), continueou error.

Elemento e atributo Comportamento quando ocorre uma correspondência

<rule OnMatch="break">

O processamento da regra é encerrado imediatamente após a aplicação da substituição dessa regra. Padrão.

<rule OnMatch="continue">

A substituição é aplicada e o processamento continua com a próxima regra.

<rule OnMatch="error">

O processamento da regra é encerrado imediatamente e um status de resposta de "solicitação recusada" é retornado ao cliente.

Substituição de atributos de catálogo

<rule> os elementos podem, opcionalmente, definir atributos que substituem os atributos de catálogo correspondentes quando a regra for correspondida com êxito. Se várias regras correspondentes definirem o mesmo atributo, o último prevalecerá. Consulte a descrição do elemento [<rule>](../../../../../is-api/image-catalog/image-serving-api-ref/c-image-catalog-reference/c-rule-set-reference/r-rule-rule.md#reference-af76c0e2b8be48dabb52b71fe7e51ee9) para obter uma lista de atributos que podem ser controlados com regras.

Expressões regulares

A correspondência de strings simples funciona para aplicativos muito básicos, mas expressões regulares são necessárias na maioria das instâncias. Embora as expressões regulares sejam padrão do setor, a implementação específica varia de instância para instância.

package java.util.regex descreve a implementação de expressão regular específica usada pelo Serviço de imagem.

Substrações capturadas

Para facilitar modificações complexas de URL, as subsequências de caracteres podem ser capturadas na expressão ao delimitar a subsequência de caracteres com parênteses (…). As subsequências capturadas são numeradas sequencialmente, começando por 1, de acordo com a posição dos parênteses à esquerda. As subsequências capturadas podem ser inseridas na substituição usando $ *n*, onde n é o número de sequência da subsequência capturada.

Gerenciar arquivos de conjunto de regras

Um arquivo de conjunto de regras pode ser anexado a cada catálogo de imagem com o atributo de catálogo attribute::RuleSetFile. Embora você possa editar o arquivo do conjunto de regras a qualquer momento, o servidor de imagem reconhece as alterações somente quando o catálogo de imagem associado é recarregado. Esse recarregamento ocorre quando o servidor da plataforma é iniciado ou reiniciado e sempre que o arquivo do catálogo principal, que tem um sufixo de arquivo .ini, é modificado ou "tocado" para alterar a data do arquivo.

Exemplos

Exemplo A. Defina uma regra que aumente as configurações de qualidade da imagem se o nome da imagem tiver o sufixo " _hg":

<rule> 
   <expression>(?i)_hg$</expression> 
   <substitution>\?&amp;qlt=95,1&amp;resmode=bicub</substitution> 
</rule>

A expressão de regra especifica uma correspondência que não diferencia maiúsculas e minúsculas de " _hg" no final da cadeia de caracteres do URL. O sufixo é substituído pela string de consulta especificada, que altera as configurações de qualidade da imagem. Observe que o caractere ? na cadeia de caracteres de substituição é evitado, pois esse é um caractere especial em expressões regulares.

OBSERVAÇÃO

A codificação necessária para o caractere e comercial (&). Como alternativa, a string de substituição pode ser fechada em um bloco CDATA:

<substitution><![CDATA[&qlt=95,1&resmode=bicub]]></substitution>

Exemplo B. Um aplicativo Web específico não permite sequências de consulta. Defina uma regra que traduza o elemento do caminho à direita small, medium ou large para um modelo, usando o restante do caminho como o nome da imagem. Por exemplo, myCat/myImage/small traduziria para myCat/smallTemplate?src=myCat/myImage.

Podemos usar subsequências para reestruturar a solicitação:

<rule> 
   <expression>([^/]+)/(small|medium|large)$</expression> 
   <substitution>$2Template?src=sample/$1</substitution> 
</rule>

Consulte também

pacote java.util.regex

Nesta página

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now