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 un catalogo di immagini principale specifico.

Le regole di pre-elaborazione delle richieste possono modificare il percorso e le porzioni di query delle richieste prima che vengano elaborate dal parser di Platform Server, inclusa la manipolazione del percorso, l'aggiunta di comandi, la modifica dei valori dei comandi e l'applicazione di modelli o macro. È inoltre possibile utilizzare le regole per configurare e sostituire determinate funzioni di sicurezza che sono normalmente controllate solo con attributi di catalogo, come l’offuscamento della richiesta, il watermarking e la limitazione del servizio a specifici indirizzi IP del client.

I set di regole vengono 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 necessari 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 preelaborazione sono sensibili all’uso di maiuscole e minuscole.

Convalida 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 arrivo 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).

Gli elementi <rule> vengono ricercati nell’ordine specificato per trovare una corrispondenza con il contenuto dell’elemento <expression> ( expression).

Se viene rilevata una corrispondenza a <rule>, viene applicato l'facoltativo substitution e la stringa di richiesta modificata viene passata al parser di richiesta del server per una normale elaborazione.

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

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 delle regole viene terminata immediatamente dopo l'applicazione della sostituzione di questa regola. Predefinito.

<rule OnMatch="continue">

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

<rule OnMatch="error">

L'elaborazione delle regole viene terminata immediatamente e lo stato di risposta "richiesta rifiutata" viene restituito al client.

Sovrascrittura degli attributi del catalogo

<rule> facoltativamente, gli elementi possono definire attributi che sovrascrivono gli attributi del catalogo corrispondenti quando la regola viene confrontata correttamente. Se più regole di corrispondenza impostano lo stesso attributo, l'ultimo prevale. Fai 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 corrispondenza semplice delle stringhe funziona per applicazioni molto semplici, ma nella maggior parte delle istanze sono necessarie espressioni regolari. Anche se le espressioni regolari sono 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 Serving.

Sottostringhe acquisite

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

Gestione dei file dei set di regole

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

Esempi

Esempio A. Definisci una regola che aumenti 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 della regola specifica una corrispondenza senza distinzione tra maiuscole e minuscole di " _hg" alla fine della stringa URL. Il suffisso viene sostituito dalla stringa di query specificata che modifica le impostazioni di qualità dell'immagine. Il carattere ? nella stringa di sostituzione è preceduto da un carattere speciale nelle espressioni regolari.

NOTA

Codifica necessaria per il carattere e commerciale. In alternativa, la stringa di sostituzione può essere racchiusa in un blocco CDATA:

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

Esempio B. Una particolare applicazione web non consente stringhe di query. Definire una regola che traduca 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

pacchetto java.util.regex

In questa pagina

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