Show Menu
THEMEN×

Regelsatz

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 angegeben werden attribute::RuleSetFile .

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> Elemente 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 catalog.ini Datei 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 Reihenfolge durchsucht, die für eine Übereinstimmung mit dem Inhalt des <expression> Elements ( expression ) angegeben ist.
Wenn eine Übereinstimmung vorliegt, <rule> substitution wird die optionale Zeichenfolge angewendet und die geänderte Anforderungs-Zeichenfolge zur normalen Verarbeitung an den Anforderungsparser des Servers übergeben.
Wenn beim Erreichen des Endes des <ruleset> Parameters 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), continue oder 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 [<rule>](../../../../../is-api/image-catalog/image-serving-api-ref/c-image-catalog-reference/c-rule-set-reference/r-rule-rule.md#reference-af76c0e2b8be48dabb52b71fe7e51ee9) Elements.

Reguläre Ausdrücke

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 Image Serving verwendet.

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 Teilzeichenfolgen können mit $ * n * in die Substitution eingefügt werden, wobei n die Sequenznummer der erfassten Teilzeichenfolge ist.

Verwalten von Regelsatzdateien

Eine Regelsatzdatei kann mit dem Katalogattribut an jeden Bildkatalog angehängt werden attribute::RuleSetFile . 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 ein Dateisuffix enthält, geändert oder "angefasst"wird, um das Dateidatum zu ändern. .ini

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 hierbei um ein Sonderzeichen in regulären Ausdrücken handelt.
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 nachgestellte Pfadelement small oder medium oder large eine Vorlage übersetzt, wobei der Rest des Pfads als Bildname verwendet wird. Zum Beispiel myCat/myImage/small würde zu übersetzen myCat/smallTemplate?src=myCat/myImage .
Wir können Unterzeichenfolgen verwenden, um die Anforderung umzustrukturieren:
<rule> 
   <expression>([^/]+)/(small|medium|large)$</expression> 
   <substitution>$2Template?src=sample/$1</substitution> 
</rule>

Verwandte Themen