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å matchnings- och ersättningsregler för 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äg och frågedelar av begäranden innan de bearbetas av Platform Serverparser, som att ändra banan, 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>

The <?xml> och <ruleset> -element 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 catalog.ini -fil. 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).

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

Om en <rule> matchas, det valfria substitution används 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> har nåtts, skickas begäran till tolken utan ändring.

Attributet OnMatch section-ed952fa55d99422db0ee68a2b9d395d3

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

Element och attribut
Beteende när en matchning inträffar
<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

The rule -elementet kan också definiera attribut som åsidosätter motsvarande katalogattribut när regeln matchas. Om flera matchade regler anger samma attribut gäller den sista. Se regel -element för en lista med attribut som kan styras 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.regexbeskriver den specifika implementeringen av 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 substitutionen 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 en .ini filsuffixet ä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 escape-konverteras 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 banelementet small, medium, eller large till en mall, med resten av sökvägen som bildnamn. Till exempel: myCat/myImage/small skulle ö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