画像レンダリングは、正規表現の一致と置き換えルールに基づく、単純なリクエストの前処理メカニズムをサポートしています。
一連の前処理ルール (ルールセット) は、マテリアルカタログまたは既定のカタログにアタッチできます。 既定のカタログのルールは、要求が特定の素材カタログをアタッチしない場合にのみ適用されます。
リクエストの前処理ルールは、パスの操作、コマンドの追加、コマンド値の変更、テンプレートやマクロの適用など、リクエストのパスとクエリの部分を、サーバーのリクエストパーサーによって処理される前に変更できます。 ルールは、一部のカタログ属性を設定および上書きする場合や、サービスを特定のクライアント IP アドレスに制限する場合にも使用できます。
ルールセットは、XML ドキュメントファイルとして保存されます。 ルールセットファイルの相対パスまたは絶対パスは、 attribute::RuleSetFile
.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ruleset SYSTEM" RuleSet.dtd">
<ruleset>
<rule>
<expression>
<varname>
expression
</varname></expression>
<substitution>
<varname>
substitution
</varname></substitution>
<addressfilter>
<varname>
addressFilter
</varname></addressfilter>
</rule>
</ruleset>
この <?xml>
, <!DOCTYPE>
および <ruleset>
要素は、実際のルールが定義されていない場合でも、常に有効なルールセット XML ファイルで必要です。
1 <ruleset>
任意の数のを含む要素 <rule>
要素を使用できます。
前処理ルールファイルの内容では、大文字と小文字が区別されます。
他の処理がおこなわれる前に、受信 HTTP リクエストが部分的に解析されて、適用する材料カタログが決定されます。 カタログを特定すると、選択したカタログ(特定のカタログが識別されなかった場合はデフォルトのカタログ)のルールセットが適用されます。
この <rule>
要素は、 <expression>
要素 ( expression
) をクリックします。
次の場合、 <rule>
が一致する場合、オプション substitution
が適用され、変更されたリクエスト文字列が通常の処理のためにサーバーのリクエストパーサーに渡されます。
一致が見つからなかった場合、 <ruleset>
に達した場合、リクエストは変更されずにパーサーに渡されます。
デフォルトの動作は OnMatch
の属性 <rule>
要素。 OnMatch
は次のように設定されます。 break
(デフォルト)、 continue
または error.
要素と属性 |
一致が発生した場合の動作 |
---|---|
<rule OnMatch="break"> |
ルールの処理は、このルールの置換が適用された直後に終了します。 初期設定. |
<rule OnMatch="continue"> |
置き換えが適用され、次のルールで処理が続行されます。 |
<rule OnMatch="error"> |
ルール処理は直ちに終了し、「リクエスト拒否」応答ステータスがクライアントに返されます。 |
<rule>
要素では、ルールが正常に一致し、 OnMatch="break"
が設定されている。 次の場合、属性は適用されません。 OnMatch="continue"
が設定されている。 詳しくは、 <rule>
ルールで制御できる属性のリスト。
単純な文字列の照合は非常に基本的なアプリケーションで機能しますが、ほとんどのインスタンスでは正規表現が必要です。 正規表現は業界標準ですが、具体的な実装はインスタンスによって異なります。
package java.util.regex は、画像サービングで使用される特定の正規表現の実装について説明します。
複雑な URL の変更を容易にするために、サブ文字列を括弧 (…) で囲むことで、式にサブ文字列を取り込むことができます。 取り込まれたサブ文字列には、先頭の括弧の位置に従って 1 から順に番号が付けられます。 取得したサブ文字列は、 $n
で、 n
は、取り込まれた部分文字列のシーケンス番号です。
カタログ属性を持つ各マテリアルカタログに 1 つのルールセットファイルをアタッチできます attribute::RuleSetFile
. ルールセットファイルはいつでも編集できますが、イメージサーバは、関連するマテリアルカタログが再ロードされた場合にのみ変更を認識します。 これは、 Platform Server が起動または再起動されたときと、( .ini ファイルのサフィックス ) が変更または「touched」(ファイルの日付を変更する場合)になります。
Ruleset の例は、画像サービングドキュメントの画像カタログ参照の対応する節に記載されています。