Referens för regeluppsättning rule-set-reference

Image Serving har stöd för en enkel förbearbetningsmekanism för begäranden som baseras på regler för matchning och ersättning av reguljära uttryck.

Samlingar med förbearbetningsregler (regeluppsättningar) kan bifogas till bildkataloger eller standardkatalogen. Regler i standardkatalogen gäller bara om begäran inte identifierar en viss huvudbildkatalog.

Regler för förbehandling av begäranden kan ändra sökvägen och frågedelarna av begäranden innan de bearbetas av parsern för Platform Server, bland annat ändra sökvägen, lägga till kommandon, ändra kommandovärden och använda mallar eller makron. Regler kan också användas för att konfigurera och åsidosätta vissa säkerhetsfunktioner som normalt bara styrs med katalogattribut, till exempel begärandeförfalskning, vattenmärkning, samt för att begränsa tjänsten till specifika IP-adresser för klienter.

Regeluppsättningar sparas som XML-dokumentfiler. Den relativa eller absoluta sökvägen för regeluppsättningsfilen måste anges i attribute::RuleSetFile.

Allmän struktur section-8bcbd91ea8a946f28051bde8ad21827f

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

Elementen <?xml> och <ruleset> krävs alltid i en giltig XML-fil för regeluppsättningar, även om inga faktiska regler har definierats.

Ett <ruleset>-element som innehåller valfritt antal <rule>-element tillåts.

Innehållet i regelfiler för förbearbetning är skiftlägeskänsligt.

Validering av regeluppsättning section-d8d101a0b4d74580835e37d128d05567

En kopia av RuleSet.xsd finns i katalogmappen och bör användas för att validera en regeluppsättningsfil innan den registreras i filen catalog.ini. Observera att Image Serving använder en intern kopia av RuleSet.xsd för validering.

Förbehandling av URL section-2c09a2d79ada46b994857c6a7fb4c13a

Innan någon annan bearbetning utförs, analyseras en inkommande HTTP-begäran delvis för att avgöra vilken bildkatalog som ska användas. När katalogen har identifierats tillämpas regeluppsättningen för den valda katalogen (eller standardkatalogen, om ingen specifik katalog har identifierats).

<rule>-elementen söks igenom i den ordning som anges för att matcha innehållet i <expression>-elementet ( expression).

Om en <rule> matchas tillämpas den valfria substitution och den ändrade begärandesträngen skickas till serverns begärandeparser för normal bearbetning.

Om ingen matchning görs när slutet av <ruleset> nås, skickas begäran till tolken utan ändring.

Attributet OnMatch section-ed952fa55d99422db0ee68a2b9d395d3

Standardbeteendet kan ändras med attributet OnMatch för elementet <rule>. OnMatch kan anges till break (standard), continue eller error.

Element och attribut
Beteende vid matchning
<rule OnMatch="break">
Regelbearbetningen avslutas omedelbart efter att ersättandet för den här regeln har tillämpats. Standard.
<rule OnMatch="continue">
Ersättningen används och bearbetningen fortsätter med nästa regel.
<rule OnMatch="error">
Regelbearbetningen avslutas omedelbart och statusen för svaret på begäran avslagen returneras till klienten.

Åsidosätta katalogattribut section-3f1e33a65c5346d1b4a69958c61432f3

Elementet rule kan definiera attribut som åsidosätter motsvarande katalogattribut när regeln matchas. Om flera matchade regler anger samma attribut gäller den sista. I elementet rule finns en lista med attribut som kan kontrolleras med regler.

Reguljära uttryck section-3f77bb9a265147b38c645f63ab1bad8b

Enkel strängmatchning fungerar för mycket grundläggande program, men reguljära uttryck krävs i de flesta fall. Medan reguljära uttryck är branschstandard varierar den specifika implementeringen från instans till instans.

package java.util.regex beskriver det specifika reguljära uttryck som används av Image Serving.

Infångade delsträngar section-066e659406d5403599cd26ae35e80d68

För att underlätta komplexa URL-ändringar kan delsträngar fångas in i uttrycket genom att omsluta delsträngen med parenteser (…). Infångade delsträngar numreras sekventiellt med början på 1 enligt positionen för den inledande parentesen. De hämtade delsträngarna kan infogas i ersättningen med $ *n*, där n är sekvensnumret för den hämtade delsträngen.

Hantera regeluppsättningsfiler section-0598a608e4044bb4805fe93ceebe10a9

En regeluppsättningsfil kan bifogas till varje bildkatalog med katalogattributet attribute::RuleSetFile. Du kan redigera regeluppsättningsfilen när som helst, men bildservern känner bara igen ändringarna när den associerade bildkatalogen läses in igen. Den här inläsningen sker när plattformsservern startas eller startas om, och när den primära katalogfilen, som har filsuffixet .ini, ändras eller"ändras" för att ändra fildatumet.

Exempel section-aa769437d967459299b83a4bf34fe924

Exempel A. Definiera en regel som ökar bildkvalitetsinställningarna om bildnamnet har suffixet _hg:

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

Regeluttrycket anger en skiftlägesokänslig matchning av _hg i slutet av URL-strängen. Suffixet ersätts med den angivna frågesträngen som ändrar bildkvalitetsinställningarna. Observera att tecknet ? i ersättningssträngen har escape-konverterats eftersom det är ett specialtecken i reguljära uttryck.

NOTE
Den kodning som krävs för et-tecknet. Alternativt kan ersättningssträngen omslutas av ett CDATA-block:

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

Exempel B. Ett visst webbprogram tillåter inte frågesträngar. Definiera en regel som översätter det efterföljande sökvägselementet small, medium eller large till en mall och använd resten av sökvägen som bildnamn. myCat/myImage/small skulle till exempel översätta till myCat/smallTemplate?src=myCat/myImage.

Vi kan använda delsträngar för att strukturera om begäran:

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

Se även section-9b748e7c5cff4759a70f96657bd43352

package java.util.regex

recommendation-more-help
a26166cd-f2f4-45ce-996d-96a0f0d6cf49