リクエストのネストと埋め込み

画像サービングでは、画像サービング要求の無制限のネスト、画像レンダリング要求の埋め込み、および外部サーバから取得した画像の埋め込みをサポートしています。 これらのメカニズムは、レイヤー画像とレイヤーマスクのみでサポートされます。

メモ

一部の電子メールクライアントおよびプロキシサーバーでは、ネストと埋め込みの構文に使用する波括弧がエンコードされる場合があります。 この問題が発生するアプリケーションでは、波括弧ではなく丸括弧を使用する必要があります。

ネストされた画像サービング要求

次の構文を使用してsrc=(またはmask=)コマンドで指定することで、画像サービング要求全体をレイヤーソースとして使用できます。

…&src=is( nestedRequest)&…

isトークンでは大文字と小文字が区別されます。

ネストされた要求には、サーバーのルートパス(通常は http:// *[!DNL server]*/is/image/')を含めないでください。

メモ

入れ子になった要求区切り文字('(',')')と、入れ子になった要求内のコマンド区切り文字('?''&''=')は、HTTPエンコードできません。 実際には、ネストされたリクエストは、外側の(ネストされた)リクエストと同じようにエンコードする必要があります。

前処理ルールは、ネストされたリクエストに適用されます。

ネストされた要求(要求URL、catalog::Modifierまたはcatalog::PostModifier内)で指定した場合、次のコマンドは無視されます。

  • fmt=
  • qlt=
  • iccEmbed=
  • printRes=
  • quantize=
  • req=
  • bgc=

ネストされた要求の結果の画像にマスク(アルファ)データが含まれる場合、その画像はレイヤーマスクとして埋め込みレイヤーに渡されます。

また、ネストされた要求に適用される画像カタログのattribute::MaxPixattribute::DefaultPixも無視されます。

ネストされたIS要求のイメージ結果は、cache=onを含めることで、オプションでキャッシュできます。 デフォルトでは、中間データのキャッシュは無効になっています。 キャッシュは、中間イメージが別の要求で妥当な期間内に再利用されると予想される場合にのみ有効にする必要があります。 標準のサーバー側キャッシュ管理が適用されます。 データは可逆の形式でキャッシュされます。

埋め込み画像レンダリング要求

サーバで[Dynamic Mediaイメージレンダリング]が有効になっている場合、src=(またはmask=)コマンドでレンダリング要求を指定することで、レイヤソースとしてレンダリング要求を使用できます。 次の構文を使用します。

…&src=ir( *[!DNL renderRequest]*)&…

irトークンでは大文字と小文字が区別されます。

renderRequest は、通常のイメージレンダリング要求で、HTTPルートパスは除き http:// *[!DNL server]*/ir/render/ます。

メモ

入れ子になった要求区切り文字('(',')')と、入れ子になった要求内のコマンド区切り文字('?''&''=')は、HTTPエンコードできません。 実際には、埋め込まれたリクエストは、外側の(埋め込み)リクエストと同じようにエンコードする必要があります。

ネストされた要求で指定した場合、次の画像レンダリングコマンドは無視されます。

  • fmt=
  • qlt=
  • icc=
  • iccEmbed=
  • printRes=
  • req=

また、ネストされたレンダリング要求に適用されるマテリアルカタログのattribute::MaxPixattribute::DefaultPixも無視されます。

入れ子にされたIR要求のイメージ結果は、cache=onを含めることで、オプションでキャッシュできます。 デフォルトでは、中間データのキャッシュは無効になっています。 キャッシュは、中間イメージが別の要求で妥当な期間内に再利用されると予想される場合にのみ有効にする必要があります。 標準のサーバー側キャッシュ管理が適用されます。 データは可逆の形式でキャッシュされます。

埋め込まれたFXGレンダリング要求

FXGグラフィックスレンダラー(AGMServer)がインストールされ、画像サービングで有効になっている場合、src=(またはmask=)コマンドでFXG要求を指定することで、レイヤーソースとして使用できます。 次の構文を使用します。

…&src=fxg( renderRequest)&…

fxgトークンでは大文字と小文字が区別されます。

メモ

FXGグラフィックスレンダリングは、Dynamic Mediaのホスト環境でのみ使用でき、追加のライセンスが必要な場合があります。 詳細については、Dynamic Mediaテクニカルサポートにお問い合わせください。

renderRequest は、通常のFXGレンダリング要求です(HTTPルートパスは除く) http:// *[!DNL server]*/agm/render/

メモ

ネストされた要求内の区切り文字('(',')')とコマンド区切り文字('?''&''=')は、HTTPエンコードできません。 実際には、埋め込まれたリクエストは、外側の(埋め込み)リクエストと同じようにエンコードする必要があります。

ネストされた要求で指定した場合、次のFXGコマンドは無視されます。

  • fmt=
  • qlt=
  • icc=
  • iccEmbed=
  • cache=

外部画像ソース

画像サービングでは、外部HTTPサーバ上のソース画像へのアクセスがサポートされています。

メモ

リモートURLに対しては、HTTPプロトコルのみがサポートされています。

src=またはmask=コマンドの外部URLを指定するには、外部URLまたはURLフラグメントを括弧で区切ります。

…&src=( foreignUrl)&…

重要:ネストされた要求内の区切り文字('(',')')とコマンド区切り文字('?''&''=')は、HTTPエンコードできません。 実際には、埋め込まれたリクエストは、外側の(埋め込み)リクエストと同じようにエンコードする必要があります。

完全な絶対URL(attribute::AllowDirectUrlsが設定されている場合)と、attribute::RootUrlを基準とした相対URLが許可されます。 絶対URLが埋め込まれ、属性が次の場合にエラーが発生します。AllowDirectUrlsが0の場合、または相対URLが指定され、attribute::RootUrlが空の場合。

リクエストURLのパスコンポーネントに直接外部URLを指定することはできませんが、相対パスを絶対URLに変換できるように、前処理ルールを設定できます(以下の例を参照)。

外部イメージは、HTTP応答に含まれるキャッシュヘッダーに従ってサーバーによってキャッシュされます。 ETagも最終変更HTTP応答ヘッダーもない場合、応答はキャッシュされません。 これにより、同じ外部画像に対する繰り返しアクセスのパフォーマンスが低下する可能性があります。画像サービングは、アクセスのたびに画像を再取得して再検証する必要があります。

このメカニズムは、コンポーネントあたり16ビットのソースイメージを除き、イメージ変換(IC)ユーティリティでサポートされるのと同じイメージファイル形式をサポートします。

メモ

画像サービングは、外部の画像が最初に使用されたときに検証ユーティリティを自動的に実行し、画像が有効であり、送信中に破損していないことを確認します。 これは、最初のアクセスで若干遅延する可能性があります。 最高のパフォーマンスを得るには、そのような画像のサイズを制限するか、適切な圧縮を行う画像ファイル形式を使用することをお勧めします。

制限

ネスト/埋め込みの要求で生成される画像のサイズは、通常、自動的に最適化されます。 ネストされた要求画像のキャッシュが有効な場合、ネストされた画像の正確なサイズを指定することでパフォーマンスの向上が図れるので、キャッシュエントリを再利用する際に、それ以上の拡大・縮小を行う必要はありません。

重要な画像サービングは、ネストされた要求や埋め込まれた要求の重複エンコーディングをサポートしていません。 ネストされたリクエストと埋め込まれたリクエストは、単純なリクエストと同様にHTTPエンコードする必要があります。

キャッシュを使用したレイヤーテンプレート:

ネストを使用して、レイヤーテンプレートにキャッシュを追加します。 限られた数の背景画像が、高可変テキストでオーバーレイされます。 最初のテンプレート文字列は次のようになります。

layer=0&src=$img$&size=300,300&layer=1&text=$txt$

わずかな変更を加えるだけで、レイヤ0のイメージを事前にスケールして持続的にキャッシュできるので、サーバの負荷を軽減できます。

layer=0&src=is(?src=$img$&size=300,300&cache=on)&layer=1&text=$txt$

Dynamic Media画像レンダリングのリクエストの埋め込み

myCatalog/myTemplateに保存されたテンプレートを使用する;[Dynamic Mediaイメージレンダリング]を使用して、テンプレートのlayer2のイメージを生成します。

http://server/is/image/myCatalog/myTemplate?layer=2&src=ir(myRenderCatalog/myRenderObject?id=myIdValue&sel=group&src=is(myCatalog/myTexture1?res=30)&res=30)&wid=300

入れ子になった中括弧に注意してください。 画像レンダリング要求では、繰り返し可能なテクスチャを取得するために画像サービングへのコールバックが埋め込まれます。

関連項目

src= , mask=, Request PreProcessing , Image Rendering Reference, Templates, 🔗 image Serving Utilities

このページ