Riferimento set di regole

Image Serving supporta un semplice meccanismo di preelaborazione delle richieste basato su regole di corrispondenza e sostituzione delle espressioni regolari.

Le raccolte di regole di pre-elaborazione (set di regole) possono essere collegate ai cataloghi di immagini o al catalogo predefinito. Le regole nel catalogo predefinito si applicano solo se la richiesta non identifica uno specifico catalogo immagini principale.

Le regole di pre-elaborazione delle richieste possono modificare il percorso e le porzioni di query delle richieste prima di essere elaborate dal parser del server della piattaforma, compresa la manipolazione del percorso, l'aggiunta di comandi, la modifica dei valori dei comandi e l'applicazione di modelli o macro. Le regole possono essere utilizzate anche per configurare e ignorare alcune funzioni di sicurezza che normalmente sono controllate solo con gli attributi del catalogo, come l'offuscamento della richiesta, l'indicazione dell'acqua, nonché per limitare il servizio a specifici indirizzi IP del client.

I set di regole sono memorizzati come file di documento XML. Il percorso relativo o assoluto del file del set di regole deve essere specificato in attribute::RuleSetFile.

Struttura generale

 <?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>

Gli elementi <?xml> e <ruleset> sono sempre richiesti in un file XML di set di regole valido, anche se non sono definite regole effettive.

È consentito un elemento <ruleset> contenente un numero qualsiasi di elementi <rule>.

I contenuti dei file delle regole di pre-elaborazione sono con distinzione tra maiuscole e minuscole.

Convalida del set di regole

Una copia di RuleSet.xsd viene fornita nella cartella del catalogo e deve essere utilizzata per convalidare un file ruleset prima di registrarlo nel file catalog.ini. Image Server utilizza una copia interna di RuleSet.xsd per la convalida.

Pre-elaborazione URL

Prima di qualsiasi altra elaborazione, una richiesta HTTP in entrata viene analizzata in parte per determinare quale catalogo immagini applicare. Una volta identificato il catalogo, viene applicato il set di regole per il catalogo selezionato (o per il catalogo predefinito, se non è stato identificato alcun catalogo specifico).

La ricerca degli elementi <rule> avviene nell'ordine specificato per trovare una corrispondenza con il contenuto dell'elemento <expression> ( expression).

Se viene rilevata una corrispondenza tra <rule>, viene applicata l'opzione substitution e la stringa di richiesta modificata viene passata al parser di richieste del server per una normale elaborazione.

Se non viene eseguita alcuna corrispondenza valida quando viene raggiunta la fine del <ruleset>, la richiesta viene trasmessa al parser senza modifiche.

L'attributo OnMatch

Il comportamento predefinito può essere modificato con l'attributo OnMatch dell'elemento <rule>. OnMatch può essere impostato su break (predefinito), continue o error.

Elemento e attributo Comportamento quando si verifica una corrispondenza

<rule OnMatch="break">

L'elaborazione della regola viene terminata immediatamente dopo l'applicazione della sostituzione per questa regola. Predefinito.

<rule OnMatch="continue">

La sostituzione viene applicata e l'elaborazione continua con la regola successiva.

<rule OnMatch="error">

L'elaborazione della regola viene terminata immediatamente e lo stato di risposta della richiesta rifiutata viene restituito al client.

Sostituzione degli attributi del catalogo

<rule> facoltativamente, gli elementi possono definire attributi che ignorano gli attributi del catalogo corrispondenti quando la regola viene rilevata correttamente. Se più regole corrispondenti impostano lo stesso attributo, prevale l'ultimo. Fare riferimento alla descrizione dell'elemento [<rule>](../../../../../is-api/image-catalog/image-serving-api-ref/c-image-catalog-reference/c-rule-set-reference/r-rule-rule.md#reference-af76c0e2b8be48dabb52b71fe7e51ee9) per un elenco di attributi che possono essere controllati con le regole.

Espressioni regolari

La semplice corrispondenza delle stringhe funziona per applicazioni molto semplici, ma nella maggior parte dei casi sono necessarie espressioni regolari. Sebbene le espressioni regolari siano standard di settore, l'implementazione specifica varia da un'istanza all'altra.

package java.util.regex descrive l’implementazione specifica delle espressioni regolari utilizzate da Image Server.

Sottostringhe acquisite

Per semplificare complesse modifiche agli URL, nell'espressione possono essere acquisite delle sottostringhe racchiudendo la sottostringa con parentesi (…). Le sottostringhe acquisite vengono numerate in sequenza a partire da 1 in base alla posizione delle parentesi iniziali. Le sottostringhe acquisite possono essere inserite nella sostituzione utilizzando $ *n*, dove n è il numero di sequenza della sottostringa acquisita.

Gestione dei file di set di regole

È possibile allegare un file set di regole a ciascun catalogo di immagini con l'attributo catalogo attribute::RuleSetFile. Anche se potete modificare il file del set di regole in qualsiasi momento, il server immagini riconosce le modifiche solo quando il catalogo immagini associato viene ricaricato. Questo ricaricamento avviene quando il server della piattaforma viene avviato o riavviato e ogni volta che il file del catalogo primario, con un suffisso di file .ini, viene modificato o "toccato" per modificare la data del file.

Esempi

Esempio A. Definite una regola che aumenta le impostazioni di qualità dell’immagine se il nome dell’immagine ha il suffisso " _hg":

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

L'espressione regola specifica una corrispondenza senza distinzione tra maiuscole e minuscole di " _hg" alla fine della stringa URL. Il suffisso viene sostituito con la stringa di query specificata che modifica le impostazioni di qualità dell'immagine. Tenere presente che il carattere ? nella stringa di sostituzione è preceduto da un carattere speciale nelle espressioni regolari.

NOTA

Codifica richiesta per il carattere e commerciale. In alternativa, è possibile racchiudere la stringa di sostituzione in un blocco CDATA:

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

Esempio B. Una particolare applicazione Web non consente le stringhe di query. Definite una regola per tradurre l'elemento del percorso finale small, medium o large in un modello, utilizzando il resto del percorso come nome dell'immagine. Ad esempio, myCat/myImage/small viene convertito in myCat/smallTemplate?src=myCat/myImage.

È possibile utilizzare le sottostringhe per ristrutturare la richiesta:

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

Consultate anche

package java.util.regex

In questa pagina