Regelsatzverweis

Image Serving unterstützt einen einfachen Mechanismus zur Vorverarbeitung von Anforderungen, der auf Regeln für die Übereinstimmung und Ersetzung von regulären Ausdrücken basiert.

Sammlungen von Vorverarbeitungsregeln (Regelsätze) können an Bildkataloge oder den Standardkatalog angehängt werden. Regeln im Standardkatalog gelten nur, wenn die Anforderung keinen bestimmten Hauptbildkatalog identifiziert.

Vorverarbeitungsregeln für Anfragen können den Pfad und die Abfrage von Anforderungen ändern, bevor sie vom Parser des Plattformservers verarbeitet werden. Dazu gehören die Änderung des Pfads, das Hinzufügen von Befehlen, das Ändern von Befehlswerten und das Anwenden von Vorlagen oder Makros. Regeln können auch verwendet werden, um bestimmte Sicherheitsfunktionen zu konfigurieren und außer Kraft zu setzen, die normalerweise nur mit Katalogattributen gesteuert werden, wie z. B. Anforderungsvertuschung, Wasserkennzeichnung und Beschränkung des Diensts auf bestimmte IP-Adressen von Clients.

Regelsätze werden als XML-Dokument-Dateien gespeichert. Der relative oder absolute Pfad der Regelsatzdatei muss in attribute::RuleSetFile angegeben werden.

Allgemeine Struktur

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

Die Elemente <?xml> und <ruleset> sind immer in einer gültigen XML-Regelsatzdatei erforderlich, auch wenn keine tatsächlichen Regeln definiert sind.

Ein <ruleset>-Element, das eine beliebige Anzahl von <rule>-Elementen enthält, ist zulässig.

Beim Inhalt der Regeldateien zur Vorverarbeitung wird die Groß-/Kleinschreibung beachtet.

Regelsatzüberprüfung

Eine Kopie von RuleSet.xsd wird im Katalogordner bereitgestellt und sollte zur Überprüfung einer Regelsatzdatei verwendet werden, bevor sie in der Datei catalog.ini registriert wird. Beachten Sie, dass Image Serving eine interne Kopie von RuleSet.xsd zur Überprüfung verwendet.

URL-Vorverarbeitung

Vor jeder anderen Verarbeitung wird eine eingehende HTTP-Anforderung teilweise analysiert, um zu bestimmen, welcher Bildkatalog angewendet werden soll. Sobald der Katalog identifiziert wurde, wird der Regelsatz für den ausgewählten Katalog (oder der Standardkatalog, wenn kein bestimmter Katalog identifiziert wurde) angewendet.

Die <rule>-Elemente werden in der angegebenen Reihenfolge nach dem Inhalt des <expression>-Elements ( expression) gesucht.

Wenn eine <rule>-Übereinstimmung vorliegt, wird die optionale substitution-Zeichenfolge angewendet und die geänderte Anforderungs-Zeichenfolge wird zur normalen Verarbeitung an den Anforderungsparser des Servers übergeben.

Wenn beim Erreichen des Endes von <ruleset> keine erfolgreiche Übereinstimmung erfolgt, wird die Anforderung ohne Änderung an den Parser übergeben.

Das OnMatch-Attribut

Das Standardverhalten kann mit dem OnMatch-Attribut des <rule>-Elements geändert werden. OnMatch kann auf break (Standard), continueoder error.

Element und Attribut Verhalten bei Übereinstimmung

<rule OnMatch="break">

Die Regelverarbeitung wird unmittelbar nach der Anwendung der Ersetzung für diese Regel beendet. Standard.

<rule OnMatch="continue">

Die Ersetzung wird angewendet und die Verarbeitung wird mit der nächsten Regel fortgesetzt.

<rule OnMatch="error">

Die Regelverarbeitung wird sofort beendet und der Antwortstatus "Anfrage verweigert"wird an den Client zurückgegeben.

Außerkraftsetzen von Katalogattributen

<rule> -Elemente können optional Attribute definieren, die die entsprechenden Katalogattribute überschreiben, wenn die Regel erfolgreich übereinstimmt. Wenn mehrere übereinstimmende Regeln dasselbe Attribut festlegen, wird das letzte Attribut beibehalten. Eine Liste der Attribute, die mit Regeln gesteuert werden können, finden Sie in der Beschreibung des Elements [<rule>](../../../../../is-api/image-catalog/image-serving-api-ref/c-image-catalog-reference/c-rule-set-reference/r-rule-rule.md#reference-af76c0e2b8be48dabb52b71fe7e51ee9).

Reguläre Ausdruck

Einfache Zeichenfolgenübereinstimmung funktioniert bei sehr einfachen Anwendungen, in den meisten Fällen sind jedoch reguläre Ausdruck erforderlich. Während reguläre Ausdruck Branchenstandard sind, variiert die spezifische Implementierung von Instanz zu Instanz.

package java.util.regex beschreibt die spezielle Implementierung des regulären Ausdrucks, die von Image Serving verwendet wird.

Erfasste Teilzeichenfolgen

Um komplexe URL-Änderungen zu erleichtern, können Teilzeichenfolgen im Ausdruck erfasst werden, indem sie die Unterzeichenfolge mit Klammern (…) versehen. Erfasste Teilzeichenfolgen werden entsprechend der Position der führenden Klammer sequenziell mit 1 nummeriert. Die erfassten Unterzeichenfolgen können mit $ *n* in die Ersetzung eingefügt werden, wobei n die Sequenznummer der erfassten Unterzeichenfolge ist.

Verwalten von Regelsatzdateien

Eine Regelsatzdatei kann mit dem Katalogattribut attribute::RuleSetFile an jeden Bildkatalog angehängt werden. Während Sie die Regelsatzdatei jederzeit bearbeiten können, erkennt der Image-Server die Änderungen nur, wenn der zugehörige Bildkatalog neu geladen wird. Dieses Neuladen erfolgt, wenn der Plattformserver gestartet oder neu gestartet wird und die primäre Katalogdatei, die das Suffix .ini enthält, geändert oder "angefasst"wird, um das Dateidatum zu ändern.

Beispiele

Beispiel A. Definieren Sie eine Regel, die die Bildqualitätseinstellungen erhöht, wenn der Bildname das Suffix " _hg" hat:

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

Der Ausdruck rule gibt eine Groß-/Kleinschreibung ohne Unterscheidung von " _hg"am Ende der URL-Zeichenfolge an. Das Suffix wird durch die angegebene Abfrage ersetzt, die die Bildqualitätseinstellungen ändert. Beachten Sie, dass das Zeichen ? in der Ersatzzeichenfolge mit Escape-Zeichen versehen ist, da es sich um ein Sonderzeichen in regulären Ausdrücken handelt.

HINWEIS

Die erforderliche Kodierung für das kaufmännische Zeichen. Alternativ könnte die Ersatzzeichenfolge in einen CDATA-Block eingeschlossen werden:

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

Beispiel B. Eine bestimmte Webanwendung lässt keine Zeichenfolgen für die Abfrage zu. Definieren Sie eine Regel, die das nachfolgende Pfadelement small, medium oder large in eine Vorlage übersetzt, wobei der Rest des Pfads als Bildname verwendet wird. Beispiel: myCat/myImage/small würde in myCat/smallTemplate?src=myCat/myImage übersetzen.

Wir können Unterzeichenfolgen verwenden, um die Anforderung umzustrukturieren:

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

Verwandte Themen

package java.util.regex

Auf dieser Seite

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