Referentie voor regelset

De Server van het beeld steunt een eenvoudig verzoek preprocessing mechanisme dat op regelmatige-uitdrukkingsgelijke en substitutieregels gebaseerd is.

Verzamelingen van voorverwerkingsregels (regelsets) kunnen worden gekoppeld aan afbeeldingscatalogi of de standaardcatalogus. De regels in de standaardcatalogus zijn alleen van toepassing als in de aanvraag geen specifieke hoofdafbeeldingscatalogus wordt geïdentificeerd.

De pre-verwerkingsregels van het verzoek kunnen de weg en vraaggedeelten verzoeken wijzigen alvorens zij door de parser van de Server van het Platform, met inbegrip van het manipuleren van de weg, het toevoegen van bevelen, het veranderen van bevelwaarden, en het toepassen van malplaatjes of macro's worden verwerkt. De regels kunnen ook worden gebruikt om bepaalde veiligheidseigenschappen te vormen en met voeten te treden die normaal slechts met catalogusattributen, zoals verzoekverwarring, water-markering, en het beperken van de dienst tot specifieke cliëntIP adressen worden gecontroleerd.

Regelsets worden opgeslagen als XML-documentbestanden. Het relatieve of absolute pad van het bestand met regelsets moet worden opgegeven in attribute::RuleSetFile.

Algemene structuur

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

De elementen <?xml> en <ruleset> worden altijd vereist in een geldig regel geplaatst dossier van XML, zelfs als geen daadwerkelijke regels worden bepaald.

Eén <ruleset>-element met een willekeurig aantal <rule>-elementen is toegestaan.

De inhoud van regelbestanden voor voorbewerken is hoofdlettergevoelig.

Validatie van regels

Er wordt een kopie van RuleSet.xsd geleverd in de catalogusmap en deze moet worden gebruikt om een liniaalbestand te valideren voordat het in het catalog.ini-bestand wordt geregistreerd. Merk op dat de Serving van het Beeld een intern exemplaar van RuleSet.xsd voor bevestiging gebruikt.

URL-voorbewerking

Voordat een nieuwe verwerking wordt uitgevoerd, wordt een inkomende HTTP-aanvraag gedeeltelijk geparseerd om te bepalen welke afbeeldingscatalogus moet worden toegepast. Nadat de catalogus is geïdentificeerd, wordt de regelset toegepast voor de geselecteerde catalogus (of de standaardcatalogus als er geen specifieke catalogus is geïdentificeerd).

De <rule> elementen worden gezocht in de orde die voor een gelijke met de inhoud van het <expression> element ( expression) wordt gespecificeerd.

Als een <rule> wordt aangepast, wordt de optionele substitution toegepast en wordt de gewijzigde verzoektekenreeks doorgegeven aan de verzoekparser van de server voor normale verwerking.

Als geen succesvolle gelijke wordt gemaakt wanneer het eind van <ruleset> wordt bereikt, wordt het verzoek overgegaan tot de parser zonder wijziging.

Het kenmerk OnMatch

Het standaardgedrag kan met het OnMatch attribuut van het <rule> element worden gewijzigd. OnMatch kan worden ingesteld op break (standaardwaarde), continueof error.

Element en kenmerk Gedrag wanneer een overeenkomst plaatsvindt

<rule OnMatch="break">

Regelverwerking wordt onmiddellijk beëindigd nadat de vervanging van deze regel is toegepast. Standaard.

<rule OnMatch="continue">

De vervanging wordt toegepast en de verwerking gaat verder met de volgende regel.

<rule OnMatch="error">

Regelverwerking wordt onmiddellijk beëindigd en een "verzoek geweigerd"antwoordstatus wordt teruggegeven aan de cliënt.

Cataloguskenmerken overschrijven

<rule> elementen kunnen desgewenst kenmerken definiëren die de overeenkomende cataloguskenmerken overschrijven wanneer de regel correct wordt aangepast. Als meerdere overeenkomende regels hetzelfde kenmerk instellen, heeft de laatste voorrang. Raadpleeg de beschrijving van het element [<rule>](../../../../../is-api/image-catalog/image-serving-api-ref/c-image-catalog-reference/c-rule-set-reference/r-rule-rule.md#reference-af76c0e2b8be48dabb52b71fe7e51ee9) voor een lijst met kenmerken die met regels kunnen worden beheerd.

Reguliere expressies

Eenvoudige tekenreeksovereenkomsten werken voor zeer eenvoudige toepassingen, maar in de meeste gevallen zijn reguliere expressies vereist. Reguliere expressies zijn industriestandaard, maar de specifieke implementatie verschilt per geval.

package java.util.regex beschrijft de specifieke regelmatige uitdrukkingsimplementatie die door Beeld Serving wordt gebruikt.

Vastgelegde subtekenreeksen

Om complexe URL-wijzigingen mogelijk te maken, kunnen subtekenreeksen worden vastgelegd in de expressie door de subtekenreeks tussen haakjes (…) te plaatsen. Vastgelegde subtekenreeksen worden opeenvolgend genummerd, beginnend met 1 op basis van de positie van het voorloophaakje. De vastgelegde subtekenreeksen kunnen in de vervanging worden ingevoegd met $ *n*, waarbij n het volgnummer van de vastgelegde subtekenreeks is.

Bestanden met regelsets beheren

Met het cataloguskenmerk attribute::RuleSetFile kunt u één regelsetbestand toevoegen aan elke afbeeldingscatalogus. U kunt het regelsetbestand op elk gewenst moment bewerken, maar de afbeeldingsserver herkent de wijzigingen alleen wanneer de bijbehorende afbeeldingscatalogus opnieuw wordt geladen. Dit wordt opnieuw geladen wanneer de platformserver wordt gestart of opnieuw wordt gestart en wanneer het primaire catalogusbestand met het achtervoegsel .ini bestand wordt gewijzigd of "aangeraakt" om de bestandsdatum te wijzigen.

Voorbeelden

Voorbeeld A. Definieer een regel die de afbeeldingskwaliteitsinstellingen verhoogt als de naam van de afbeelding het achtervoegsel " _hg" heeft:

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

De regeluitdrukking specificeert een case-insensitive gelijke van " _hg"aan het eind van het koord URL. Het achtervoegsel wordt vervangen door de opgegeven queryreeks waarmee de afbeeldingskwaliteitsinstellingen worden gewijzigd. Het ?-teken in de vervangende tekenreeks wordt genegeerd, omdat dit een speciaal teken in reguliere expressies is.

OPMERKING

De vereiste codering voor het ampersand-teken. U kunt de vervangende tekenreeks ook insluiten in een CDATA-blok:

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

Voorbeeld B. Een bepaalde webtoepassing staat geen querytekenreeksen toe. Definieer een regel die het navolgende padelement small, medium of large omzet in een sjabloon, waarbij de rest van het pad als afbeeldingsnaam wordt gebruikt. myCat/myImage/small wordt bijvoorbeeld omgezet in myCat/smallTemplate?src=myCat/myImage.

U kunt subtekenreeksen gebruiken om de aanvraag te herstructureren:

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

Zie ook

pakket java.util.regex

Op deze pagina