Cisco Internet Streamer CDS 2.0-2.2 Software コンフィギュレーション ガイド
マニフェスト ファイルの作成
マニフェスト ファイルの作成
発行日;2012/02/01 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 5MB) | フィードバック

目次

マニフェスト ファイルの作成

概要

マニフェスト ファイルの要件

マニフェスト ファイルによる動作

単一コンテンツ項目の指定

クロール ジョブの指定

一般的な正規表現の作成

コンテンツ取得のスケジュール

共有属性の指定

クローラー フィルタの指定

コンテンツの優先順位の指定

再生サーバ リストの生成

カスタマイズされたマニフェスト再生サーバ テーブルと HTTP 再生サーバ

コンテンツ サービスに対する属性の指定

マニフェスト ファイルにおける時刻値の指定

コンテンツの更新と削除

ライブ コンテンツの指定

ハイブリッド インジェスト コンテンツの指定

Manifest Validator ユーティリティ

Manifest Validator ユーティリティの実行

正しいマニフェスト ファイル例

誤ったマニフェスト ファイル例

マニフェスト ファイル検証ユーティリティの概要

構文エラー

構文警告

マニフェスト ファイル構文の修正

マニフェスト ファイルの構造と構文

CdnManifest

playServerTable

playServer

options

server

host

proxyServer

item

crawler

item-group

matchRule

match

contains

XML スキーマ

マニフェスト XML スキーマ

PlayServerTable XML スキーマ

デフォルトの PlayServerTable スキーマ

マニフェスト ファイルの時間帯テーブル

マニフェスト ファイルの作成

この付録では、Content Delivery System(CDS; コンテント デリバリ システム)ネットワーク内のコンテンツの取得と配信に使用されるマニフェスト ファイルの作成プロセスについて説明します。この付録は、次の内容から構成されています。

「概要」

「マニフェスト ファイルによる動作」

「Manifest Validator ユーティリティ」

「マニフェスト ファイルの構造と構文」

「XML スキーマ」

「マニフェスト ファイルの時間帯テーブル」

デリバリ サービスでマニフェスト ファイルを使用する方法については、「マニフェスト ファイルを使用したコンテンツの識別」を参照してください。

概要

CDS は、異なるクライアント デバイスに複数のフォーマットのコンテンツのインジェスト、配信、および配布に使用されます。事前取得するコンテンツを指定し、事前取得したコンテンツの配布を制御するために、マニフェスト ファイルと呼ばれる XML ファイルを使用します。サードパーティ製のアセット管理システムは、このマニフェスト ファイルを使用して CDS と相互運用することができます。CDS の各デリバリ サービスは、ゼロまたは 1 つのマニフェスト ファイルを使用して設定できます。マニフェスト ファイルは、Content Delivery System Manager(CDSM; コンテント デリバリ システム マネージャ)を使用して自動的に生成することもできます。マニフェスト ファイルは、プリフェッチ インジェストおよびハイブリッド インジェストで主に使用されます。

マニフェスト ファイルを CDSM で指定する方法は、次のとおりです。

外部マニフェスト ファイル仕様 ― マニフェスト ファイルを外部サーバ上に置き、そのサーバをポイントする URL をデリバリ サービスに設定します。マニフェスト ファイルは FTP、HTTP、HTTPS、および CIFS プロトコルを使用して取得できます。

GUI 設定 ― CDSM GUI を使用してマニフェスト ファイルを生成できます。CDSM は、マニフェスト ファイルの作成とマニフェスト ファイルの属性の指定に必要な要素を提供します。CDSM でサポートされるのは、一般的に使用される属性だけです。

マニフェスト ファイルは、Content Acquirer によって処理されます。Content Acquirer はマニフェスト ファイルを解析し、マニフェスト ファイルの属性に基づいてメタデータを作成し、指定されたコンテンツを事前取得します。ライブ コンテンツおよびオンデマンドでインジェストされるコンテンツについては、Content Acquirer はメタデータを作成しますが、実際のコンテンツは取得しません。Content Acquirer により作成されたメタデータは、デリバリ サービスに参加しているすべての Service Engine に伝播されます。

マニフェスト ファイルの要件

マニフェスト ファイルは、コンテンツ事前取得およびハイブリッド インジェストに使用される各種の属性とタグをサポートする必要があります。マニフェスト ファイルの基本要件は、次のとおりです。

事前取得コンテンツの指定 ― 事前取得コンテンツの指定には、次の 2 つの方法があります。1 つの方法は、単一項目を使用することです。この場合、ユーザは 1 つの URL を指定し、Content Acquirer はその URL によりポイントされるコンテンツだけをインジェストします。もう 1 つの方法では、クローラー項目を使用します。この場合、ユーザは start-url、level of depth、prefix、reject/accept などのパラメータを使用してクロール ジョブを指定します。Content Acquirer 送信元サーバをクロールして、パラメータに基づいてコンテンツを取得します。

スケジュール情報の指定 ― コンテンツをインジェストするタイミング、および更新がないかサーバを調べる頻度を Content Acquirer に指定します。

パブリッシング情報の指定 ― エンド ユーザがコンテンツにアクセスする方法に関する情報です。たとえば、playserver 属性ではコンテンツの再生にしようするサーバを指定し、cdn-url 属性ではエンド ユーザがコンテンツのアクセスに使用する URL を指定し、また ServeStartTime と ServeStopTime 属性ではコンテンツを使用するタイミングを CDS に示し、再生に必要な追加のメタデータを提供します。

ライブ ストリーミング コンテンツの指定 ― マニフェスト ファイルはライブ ストリーミングの分割にも使用できます。

ハイブリッド インジェスト コンテンツ用のメタデータの指定 ― ハイブリッド インジェストの場合、マニフェスト ファイルを使用して、オンデマンドでインジェストされるコンテンツのコンテンツ使用開始時刻と停止時刻を指定できます。

マニフェスト ファイルによる動作

ここでは、特定のタスクを実行するためのサンプル マニフェスト ファイルについて説明します。各サンプルには、サンプルの目的と機能に関する説明があります。マニフェスト ファイルでは、単一コンテンツ オブジェクト、Web サイト クローラー ジョブ、または FTP サーバ クローラー ジョブを指定して、事前取得コンテンツの取得やライブ コンテンツに関する情報の取得ができます(このコンテンツはエッジ Service Engine にあとで配信されます)。

単一コンテンツ項目の指定

単一のコンテンツ項目、オブジェクト、または URL を指定するには、<item> タグを使用します。必須属性 src は、URL の相対パス部分を指定するのに使用します。server name 属性が省略された場合、それより以前に <server> タグで最後に指定された server name 属性が使用されます。マニフェスト ファイル内の近くに <server> タグがない場合、マニフェスト ファイルをホストするサーバが使用されます。つまり、相対 URL はマニフェスト ファイル URL が基準になります。

次に、単一コンテンツ項目を指定するマニフェスト ファイルの例を示します。

<CdnManifest>
<item src="http://www.my-server/test.html" />
<item src="test.html" />
<server name="my-origin-server-one">
<host name="http://www.my-server-one.com/eng/" />
</server>
<server name="my-origin-server-two">
<host name="http://www.my-server-two.com/eng/" />
</server>
<item src="project-two.html" />
<item server="my-origin-server-one" src="project-one.html" />
</CdnManifest>
 

単一項目の場合は、項目の URL を src 属性で指定します。項目の URL の指定には、次の 2 通りの方法があります。

次の形式を使用し、絶対 URL で src 属性を指定

proto://username:password@/domain-name:port/file-path/file-name
 

この例では、最初の <item> タグでフル パスを使用しています。

<server><host> タグを使用して送信元サーバ情報を指定し、 src 属性には相対パスだけを指定

この例では、最初のタグを除くすべての <item> タグが相対パスを使用しています。2 番めの <item> タグはマニフェスト サーバを使用し、test.html はマニフェスト ファイル URL が基準になります。2 番めの <item> タグ「project-two.html」は、「my-origin-server-two」を使用します。3 番めの <item> タグ「project-one.html」は、「my-origin-server-one」を使用します。

クロール ジョブの指定

クローラー機能は受け入れ可能な Web サイトを系統的かつ自動的に検索し、アクセスしたページのコピーを作成しあとで処理できるようにします。クローラーは、最初はアクセスする URL のリストから始め、ページ内のすべての Web リンクを識別して、アクセスする URL のリストにこれらのリンクを追加します。次の条件の 1 つ以上を満たしたあと、処理が終了します。

指定された深さのリンクまでたどった

取得したオブジェクトの数が上限に達した

取得したコンテンツのサイズが上限に達した

time-to-live( ttl ; 存続可能時間)属性を使用して一定の間隔でサイトをクロールすることで、リンクとリンクに関連付けられたコンテンツが定期的に更新され、コンテンツが最新のものに保たれます。Web サイトまたは FTP サーバのクローラー属性を指定するには、<crawler> タグを使用します。 表B-1 では属性を列挙し、属性が必須なのか任意なのかを示し、機能について説明します。

 

表B-1 Web サイトまたは FTP サーバのクロール ジョブ属性

属性
説明

start-url

(必須)クロール ジョブの開始点となる URL を定義します。URL にはフル パスまたは相対パスを使用できます。相対パスの場合、送信元サーバ情報の指定には、<server><host> タグが必要です。

depth

(任意)指定された Web サイトをクロールする深度レベルを定義します。

深度は、Web サイトの URL リンクの階層または FTP サーバのディレクトリの階層として定義されます。

0 = 開始 URL だけを取得
1、2、3、...= 開始 URL とそれが参照するファイルを指定された深度まで取得する
-1 = 無限、または深さの制限なし

深度が指定されない場合、デフォルトが使用されます。デフォルトは 20 です。


) 深度 -1 の指定は、大規模な Web サイトのクロールに長時間かかり、その Web サイト上のすべてのコンテンツを必要としない場合には無駄になるので、有効ではありません。


prefix

(任意)<server> タグからのホスト名とこのフィールドを結合して、フル プレフィクスを作成します。このフル プレフィクスと一致する URL のコンテンツのみが取得されます。次に例を示します。

<server name="xx"> <host name="www.cisco.com" proto="https" port=433/> </server>
 

<crawler> タグ内は、次のとおりです。

prefix="marketing/eng/"
 

フル プレフィクスは「https://www.cisco.com:433/marketing/eng/」となります。このフル プレフィクスと一致する URL だけがクロールされます。Web ページが .../marketing/ops を参照している場合、marketing/ops ページとその子ページは取得されません。

プレフィクスが省略された場合、クローラーはデフォルトのフル プレフィクス(サーバからの URL のホスト名の部分)を調べます。この例では、デフォルトのフル プレフィクスは「https://www.cisco.com:433」です。

accept

(任意)受け入れ可能な URL をプレフィクスと一致させるほか、クロール対象の受け入れ可能な URL を定義する正規表現を使用します。たとえば、accept=“stock” は、URL がプレフィクスと一致すること、および正規表現ストリング「stock」が含まれていること、の 2 つの条件を満たす URL だけがクロールされることを意味します。

reject

(任意)正規表現を使用して、URL がその正規表現と一致する場合にその URL を拒否します。URL は、想定されるプレフィクスとの一致を調べられたあと、reject 正規表現との一致を調べられます。URL がプレフィクスと一致しない場合、ただちに拒否されます。URL がプレフィクスと reject 正規表現の両方と一致する場合、正規表現によって拒否されます。

max-number

(任意)取得可能なクロール ジョブ オブジェクトの最大数を指定します。

maxTotalSizeIn-MB
maxTotalSizeIn-KB
maxTotalSizeIn-B

(任意)このクロール ジョブが取得できるコンテンツの最大サイズを指定します。このサイズは、バイト数(B)、キロバイト数(KB)、またはメガバイト数(MB)で表すことができます。


) 取得されるファイルの最大サイズは、そのファイルの保存に必要とされるディスク容量よりは小さい値です。ファイルには保存時に、デリバリ サービスに使用されるオーバーヘッド分のディスク容量が加わるからです。このオーバーヘッドはファイルあたり約 20 KB です。デリバリ サービスのディスク クォータを設定する場合は、ファイル サイズと保存に関連するオーバーヘッドを考慮する必要があります。


この属性は、 max-size-in-B/KB/MB 属性に代わるものです。
max-size-in-B/KB/MB 属性は、下位互換性を確保するためだけにサポートされています。

externalPrefixes

(任意)複数のプロトコルまたは複数の Web サイトをクロールするよう、クロール ジョブにプレフィクスを追加指定します。プレフィクスはパイプ(|)で区切ります。

externalServers

(任意)クロール ジョブにホストを追加指定します。ユーザ アカウントがホストごとに異なる複数のホストのクロール ジョブを行う場合に使用できます。この属性は、適切な認証情報を持つ <host> タグの参照に使用できます。


max-numbermaxTotalSizeIn の両方の属性がクロール ジョブを停止する基準として指定されると、最初に合致した条件が優先します。最大数のオブジェクトを取得したとき、または最大コンテンツ サイズに達したときのどちらか早いほうで、クロール ジョブは停止します。たとえば、マニフェスト ファイルで指定された最大コンテンツ サイズにまだ達していなくても、最大数のオブジェクトを取得した場合には、クロール ジョブは停止します。


Web サイト クロール ジョブの例を次に示します。

<server name="cisco">
<host name="http://www.cisco.com/jobs/" />
</server>
<crawler
server="cisco"
start-url="eng/index.html"
depth="10"
prefix="eng/"
reject="\.pl"
maxTotalSizeIn-MB="200"
/>
 

この Web サイト クロール ジョブの例には、次の属性を含みます。

start-url パスは http://www.cisco.com/jobs/eng/index.html です。

Web サイト リンクの depth 10 まで検索します。

prefix http://www.cisco.com/jobs/eng/ を持つ URL を検索します。

.pl(Perl スクリプト ページ)を含む URL を拒否します。

取得するコンテンツの合計サイズが 200 MB になるまで、クロールします。

server name 属性が省略された場合、それより以前に <server> タグで最後に指定された server name が使用されます。マニフェスト ファイル内の近くに <server> タグがない場合、マニフェスト ファイルをホストするサーバが使用されます。つまり、相対 URL はマニフェスト ファイル URL が基準になります。

一般的な正規表現の作成

正規表現は、認識可能なパターンに従うストリングと一致させるための式です。正規表現では、次の文字に特殊文字としての特別な意味があります。

. * \ ? [ ] ^ $

正規表現ストリングにこれらの特殊文字が含まれていない場合、完全一致するものだけが検索条件に適合します。たとえば、「stock」は、正確なサブストリング「stock」と一致する必要があります。

コンテンツ取得のスケジュール

ttl prefetch の 2 つの属性は、コンテンツ取得をスケジュールする場合に使用します。最新の情報がないかどうかコンテンツを調べる頻度(分単位)を指定する場合は、 ttl を使用します。たとえば、ページの更新を毎日調べる場合は、ttl="1440" と入力します。

次の例では、一日 1 回ページの更新を調べるようにスケジュールしています。

<item
src="index.html"
ttl="1440"
/>
 

次の例では、1 時間ごとにリンクを depth 2 までクロールし、ページの更新を調べるようにスケジュールしています。

<crawler
start-url="index.html"
depth="2"
ttl="60"
/>
 

特定の URL のコンテンツがまだ使用可能でない場合、 prefetch 属性を使用して、指定した URL で取得を開始する時間を指定できます。たとえば、prefetch="2002-06-28 18:35:21" は、コンテンツの取得ジョブが 2002 年 6 月 28 日のこの指定時刻になった場合のみ開始されることを意味します。

次の例は、この Web サイトのリンクを 1 時間ごとに depth 2 までクロールするジョブが、2001 年 11 月 9 日午前 8 時 45 分に開始するようにスケジュールしています。

<crawler
start-url="index.html"
depth="2"
prefetch="2001-11-09 08:45:12"
ttl="60"
/>

共有属性の指定

単一 <item> タグ内の属性は、共有したり、同じ属性値を持たせることができます。<item> タグごとに個別にこれらの属性を書き込むのではなく、属性を取り出して <item-group> と呼ばれるより高いレベルのタグに入れることができます。この高レベルのタグからこれらの属性を共有できます。次の例のように、<CdnManifest> タグの下のレベルに <item-group> を作成し、<item> をサブタグとして書き込むと、共有属性を <item-group> 内に移すことができます。

<?xml version="1.0"?>
<CdnManifest>
 
<server name="cisco-cco">
<host name="http://www.cisco.com"
proto="http" />
</server>
 
<item-group
server="cisco-cco"
ttl="1440"
type="prepos" >
 
<item src="jobs/index.html"/>
<item src="jobs/index1.html"/>
<item src="jobs/index2.html"/>
<item src="jobs/index3.html"/>
<item src="jobs/index4.html"/>
<item src="jobs/index5.html"/>
 
</item-group>
 
</CdnManifest>
 

また、<options> タグを使用して、マニフェスト ファイルの最上位レベルで属性を共有することもできます。<options> タグ内の共有属性は、すべての <item> タグによって、またはマニフェスト ファイル内の <crawler> タグによって共有できます。ただし、共有属性が <item-group> タグと <item> タグの両方、または <options> タグと <item> タグの両方に指定された場合、<item> タグ内の属性値が <item-group> タグと <options> タグに優先します。

次の例では、この優先順位の規則を示します。最初の <item> タグは <options> タグから ttl 値 1440 を得ますが、2 番めの <item> タグは独自の ttl 値 60 を使用します。

<options
ttl="1440" >
<item src="index.html" />
<item src="index1.html" ttl="60" />
 

クローラー フィルタの指定

ルール ベースのクローラー フィルタを使用すると、Web サイト全体をクロールし、事前に定義された一定の特性を持つコンテンツだけを取得できます。これに対し、<crawler> タグ内のクローラー属性は、フィルタとしての役割はなく、クロール用の属性を定義するのみです。ルール ベースのフィルタの役割をするためのものとして、<matchRule> タグがあります。ファイルの拡張子、サイズ、コンテンツ タイプ、およびタイムスタンプについてルール ベースの一致条件を定義できます。次の例では、「index.html」で始まる Web サイト全体をクロールし、.jpg 拡張子を持つ 50 KB を超えるファイルだけを取得するようにクロール ジョブを設定しています。

<crawler
start-url="index.html" >
<matchRule>
<match minFileSizeIn-KB="50" extension="jpg" />
</matchRule>
</crawler>
 

<matchRule> タグ内には複数の <match> サブタグを指定できます。 表B-2 では、<match> サブタグの属性を一覧表示し、説明します。

 

表B-2 <match> サブタグの属性

属性
説明

mime-type

MIME タイプの一致を指定します。

extension

拡張子を持つファイルの一致を指定します。

time-before

この時間(Greenwich Mean Time [GMT; グリニッジ標準時] 時間帯を使用)より前に変更されたファイルの一致を、yyyy-mm-dd hh:mm:ss 形式で指定します。

time-after

この時間(GMT 時間帯を使用)よりあとに変更されたファイルの一致を、yyyy-mm-dd hh:mm:ss 形式で指定します。

minFileSizeIn-MB
minFileSizeIn-KB
minFileSizeIn-B

(任意)この値以上のコンテンツ サイズの一致を指定します。このサイズは、メガバイト数(MB)、キロバイト数(KB)、またはバイト数(B)で表すことができます。

maxFileSizeIn-MB
maxFileSizeIn-KB
maxFileSizeIn-B

(任意)この値以下のコンテンツ サイズの一致を指定します。このサイズは、メガバイト数(MB)、キロバイト数(KB)、またはバイト数(B)で表すことができます。

prefix

任意です。クロール ジョブ時に除外する Web サイトの一致規則としてプレフィクスを指定します。

url-pattern

任意です。特定の URL を除外する一致規則として正規表現を指定します。

<match> サブタグには、複数の属性を指定できます。<match> タグ内の属性には、ブール AND の関係があります。次の例では、この一致規則を満たすファイルは、拡張子が .mpg タイプで、サイズが 50 KB を超えている必要があります。

<match extension="mpg" minFileSizeIn-KB="50" />
 

<match> 規則自体の間に、相互にブール OR の関係があります。<matchRule> タグは複数の <match> サブタグを持てますが、一致する必要があるのはそのうちの 1 つの match サブタグだけです。<matchRule> タグは、<crawler> タグのサブタグまたは <item-group> タグのサブタグとして指定できます。<item-group> タグ内にサブタグがある場合、そのサブタグは、その <item-group> タグ内のすべての <crawler> タグによって共有されます。


accept または reject 属性が、<crawler> タグ内でクローラー フィルタ用に誤って使用されることがあります。

たとえば、拡張子 .mpg をもつファイルをクロールするには、単に accept="\.mpg" とするだけでは正しくありません。この場合、accept="\.mpg" の指定は技術的に誤りではありませんが、クロールは行われません。accept 制約と一致しない URL を持つページは検索されないからです。たとえば、開始 URL が index.html である場合、この HTML ファイルは解析され、.mpg が含まれていないリンクはすべて拒否されます。.mpg ファイルが 2 番め以下のリンク レベルに置かれている場合、これらのファイルに接続しているリンクが拒否されるため、ファイルは取得されません。

.mpg 拡張子を正しくクロールするには、<matchRule> を使用します。<matchRule> <match extension="mpg" /> と指定してください。サイト全体がクロールされ、.mpg 拡張子を持つファイルだけが取得されます。


コンテンツの優先順位の指定

コンテンツ オブジェクトに優先順位を割り当てて、重要度を定義できます。CDS ソフトウェアは、コンテンツの優先順位のレベルに基づいて処理の順序を決定します。コンテンツの優先順位が高くなるほど、コンテンツは送信元サーバから早く取得され、Service Engine に早く配信されます。


) クロール ジョブを実行して取得される、すべてのコンテンツ オブジェクトの優先順位は同じです。


コンテンツの優先順位は、次の 3 つの要素を組み合わせて決定されます。

デリバリ サービスの優先順位 ― CDSM の Delivery Service Definition ページの Acquisition and Distribution Properties 領域にある Content Distribution Priority ドロップダウン リスト

項目の索引 ― マニフェスト ファイルにリストされているコンテンツの順序

項目の優先順位 ― <item> タグまたは <crawler> タグで指定される属性の優先順位

コンテンツの優先順位を計算するには、次のどちらかの式を使用してください。

マニフェスト ファイルの priority 属性でこのコンテンツの優先順位値が指定されている場合は、次の式を使用します。

コンテンツの優先順位 = デリバリ サービスの優先順位× 10000 + 項目の優先順位

この公式では、項目の優先順位に制限なく任意の整数を使用できます。


ヒント 特定のコンテンツ オブジェクトに最高の優先順位を持たせる場合、コンテンツの優先順位の式で項目の優先順位に十分に大きい整数値を指定してください。


マニフェスト ファイルの priority 属性でオブジェクトの優先順位値が指定されていない場合、次の式を使用します。

コンテンツの優先順位 = デリバリ サービスの優先順位× 10000 + 10000 - 項目のインデックス

この公式の項目のインデックスは、コンテンツがマニフェスト ファイルにリストされている順序です。


) どの項目にも優先順位が指定されてない場合、マニフェスト ファイルにリストされている順序でコンテンツが処理されます。


再生サーバ リストの生成

CDS ソフトウェアは、CDS ネットワーク上の事前取得コンテンツ タイプ(HTTP、HTTPS、RTSP、および RTMP [Movie Streamer、Windows Media、Flash Media Streaming])を再生する、再生サーバをサポートします。


) Flash Media Streaming(RTMP)はリリース 2.1 の機能です。したがって、この機能はリリース 2.0 では使用できません。


CDS ソフトウェアは、要求されたプロトコルが再生サーバ テーブル内のリストと一致するかどうかを調べます。リストと一致する場合、要求は送信されます。リストと一致しない場合、要求は拒否されます。

再生サーバ リストは、次の方法で生成できます。

<item> タグで再生サーバ属性を設定

<playServerTable> タグで再生サーバの MIME タイプ拡張子を設定

マニフェスト ファイルから直接、再生サーバ リストを作成するには、<item> タグで再生サーバ リストの再生サーバ属性を設定します。<item> タグに再生サーバ属性が指定されていない場合、再生サーバ リストは <playServerTable> タグを使用して生成されます。<playServerTable> タグがマニフェスト ファイル内で省略されている場合、組み込みのデフォルト <playServerTable> タグを使用して再生サーバ リストが生成されます。次の例のように、複数のサーバはカンマで区切ります。

<item src="video.mpg" playServer="wmt,http" />
 

<playServerTable> タグを使用して、これらのストリーミング メディア タイプをサポートする再生サーバ リストを生成することもできます。<playServerTable> タグにより、コンテンツは MIME タイプの拡張子名に基づいて再生サーバ リストにマッピングされます。マニフェスト ファイルに <playServerTable> タグがある場合は、そのタグを使用してください。

<playServerTable> タグを使用して再生サーバ リストを生成するには、MIME タイプの拡張子名を使用して、どの再生サーバが特定の事前取得コンテンツを再生できるようにするかを設定します。次に例を示します。

<playServerTable>
<playServer name="wmt">
<extension name="wmv" />
<extension name="wma" />
<extension name="wmx" />
<extension name="asx" />
<extension name="asf" />
<extension name="avi" />
</playServer>
<playServer name="http">
<contentType name="application/pdf" />
<contentType name="application/postscript" />
<extension name="pdf" />
<extension name="ps" />
</playServer>
</playServerTable>
 

<playServerTable> タグは、コンテンツ タイプごとに再生サーバ リストを生成する場合に使用します。前述の例では、PDF(.pdf)または PostScript(.ps)ファイルはすべて、HTTP を使用してコンテンツを再生します。

カスタマイズされたマニフェスト再生サーバ テーブルと HTTP 再生サーバ

通常は、マニフェスト ファイルで独自の再生サーバ テーブルまたは再生サーバを指定する必要はありません。デフォルトの再生サーバ テーブルにより、該当するファイル拡張子または MIME タイプが適切な再生サーバにマッピングされます。

デフォルトの再生サーバ テーブルを使用すると、HTTP 再生サーバが必ず再生サーバ リストに含まれるので、HTTP で事前取得コンテンツを再生できます。デフォルトの再生サーバ テーブルではニーズが満たされない場合、マニフェスト ファイルで独自の再生サーバ テーブルを定義するか playServer 属性を指定すると、再生サーバ リストをカスタマイズできます。

HTTP 再生サーバは、デフォルトで再生サーバ テーブルに含まれています。ただし、独自の再生サーバ テーブルを指定したり、<item> タグまたは <crawler> タグで playServer 属性を指定する場合には、HTTP 再生サーバを追加しないと、HTTP コンテンツまたは HTTP を使用する他のコンテンツを再生できません。

コンテンツ サービスに対する属性の指定

マニフェスト ファイル内で特定の属性を指定すると、Service Engine によるコンテンツのサービス方法を制御できます。これらの属性は、<item> タグと <crawler> タグで指定できます。また、<item-group> タグか <options> タグでも同じ属性を指定できるので、<item> と <crawler> サブタグによって共有できます。 表B-3 では、これらのコンテンツ サービスの属性を一覧表示し、説明します。

 

表B-3 コンテンツ提供の属性

属性
説明

serveStartTime

(任意)CDS ソフトウェアがコンテンツのサービスを開始できる時刻を yyyy-mm-dd hh:mm:ss の形式で指定します。サービス開始時刻が省略された場合、コンテンツは Service Engine に配信されるといつでもサービスできます。

serveStopTime

(任意)CDS ソフトウェアがコンテンツのサービスを一時的に停止する時刻を yyyy-mm-dd hh:mm:ss の形式で指定します。サービス停止時刻が省略されている場合、マニフェスト ファイルの変更またはデリバリ サービスの名前変更によりコンテンツが削除されるまで、CDS ソフトウェアはコンテンツを Service Engine に配信します。

alternateUrl

(任意)ユーザが要求したコンテンツが CDS ネットワーク内に用意できていない場合、CDS ネットワークはこの代替 URL に要求を転送します。この代替 URL はエラー報告ページとして設定できます。この属性はフルパスの URL だけをサポートします。


) この属性は、要求されるコンテンツに対して適用されます。コンテンツを削除する場合、この属性を適用しません。ただし、コンテンツの取得に失敗した場合は、この属性を適用する必要があります。


ignoreQueryString

<options>、<item-group>、<item>、および <crawler> タグで使用できる再生属性。 ignoreQueryString が true に設定されている場合、CDS ソフトウェアは、再生を要求する URL 内にある疑問符(?)のあとのストリングをすべて無視します。この属性が省略された場合、デフォルト値は false です。

たとえば、要求 URL「url=http://web-server/foo」を持つコンテンツが事前取得されているとします。ユーザが URL url=http://web-server/foo?id=xxx を持つコンテンツを要求し、 ignoreQueryString 属性が false である場合、CDS ソフトウェアは、要求 URL「http://web-server/foo」からの事前取得コンテンツを使用しません。

ただし、 ignoreQueryString 属性が true である場合、CDS ソフトウェアは、要求 URL 「http://www-server/foo?id=xxx」を「http://www-server/foo」と同一に扱い、事前取得コンテンツを戻します。

wmtRequireAuth

(任意)指定されたコンテンツを再生する前にユーザの認証が必要かどうかを決定します。 wmtRequireAuth が true である場合、ユーザに指定されたコンテンツを再生するには認証が必要となり、Service Engine はクレデンシャルを検査するためにオリジン サーバと通信します。クレデンシャルの検査に合格すると、コンテンツは Service Engine から再生されます。この属性が省略された場合、発見的解決法で設定が決定されます。つまり、指定されたコンテンツがユーザ名とパスワードを使用して取得される場合、wmtRequireAuth は true に設定され、それ以外の場合は false に設定されます。FTP の場合、ユーザ名が匿名であれば、wmtRequireAuth は false に設定されます。


wmtRequireAuth が true である場合、このデリバリ サービスの CDSM Content Origin ページの Origin Server フィールドに、ユーザを認証できるサーバを設定する必要があります。ユーザがコンテンツを再生したい場合には、この Origin Server フィールドに指定されたサーバが認証のために調べられます。


マニフェスト ファイルにおける時刻値の指定

次の属性には、時刻値を yyyy-mm-dd hh:mm:ss 形式(年-月-日 時:分:秒)で入力する必要があります。

prefetch

serveStartTime

serveStopTime

expires

time-before

time-after

マニフェスト ファイル内の時刻ストリングは、yyyy-mm-dd hh:mm:ss 形式に従います。時間帯を使用することを示す場合は、任意で特定の時間帯を時刻ストリングの最後に指定できます。時間帯の指定が省略された場合、GMT 時間帯が使用されます。時間帯における夏時間と標準時間との自動変換はサポートされませんが、夏時間の特別な指定(たとえば、太平洋夏時間を PDT と指定)は使用できます。次の例では、事前取得時間は太平洋夏時間の 2002 年 9 月 5 日午前 9 時 9 分 9 秒です。

<options timeZone="PDT" />
<item src="index.html" prefetch="2002-09-05 09:09:09 PDT" />

コンテンツの更新と削除

コンテンツ オブジェクトが最新のものであるかどうかを監視し、制御するには、マニフェスト ファイルの ttl および expires 属性を使用します。

ttl 属性は分単位で表記し、ソフトウェアが送信元サーバのコンテンツに更新がないかを調べる頻度を指定します。 ttl 属性が <item> タグ内に指定されると、属性はその項目に適用されます。<crawler> タグ内に指定されると、属性はそのクロール ジョブに適用されます。

たとえば、 ttl 属性に値 10 を指定すると、ソフトウェアはその項目またはクロール ジョブを 10 分ごとに調べます。項目が更新されていた場合、更新されたファイルが再度取得されます。


注意 場合によっては、クロール ジョブが非常に大きくなり、数千を超えるファイルをクロールする場合があります。再クロール速度は、小さいファイルでは 1 時間あたり 5000 ファイルです。数多くのファイルを再検査すると、非常に時間がかかります。そのようなクロール ジョブには、ttl に大きい値(たとえば、1440 分[1 日])を指定することを推奨します。大きい値を指定しない場合、ソフトウェアがサイトを何度も繰り返してクロールするため、他の取得タスクの妨げになります。

マニフェスト ファイルの ttl 属性が省略された場合、存続可能時間はゼロであるとみなされ、ソフトウェアはその項目を取得したあとは、再検査を行いません。 ttl 値をゼロにすると、コンテンツは 1 回だけ取得され、再検査されることはありません(CDSM の Fetch Manifest Now ボタンをクリックするか、Content Acquirer CLI で acquirer start-delivery-service EXEC コマンドを使用する場合を除きます)。

Fetch Manifest Now ボタンは、CDSM の Delivery Service Content ページにあります。このボタンをクリックすると、ソフトウェアはマニフェスト ファイルが更新されたかを調べ、更新されたマニフェスト ファイルはダウンロードされ解析されます。また、マニフェスト ファイルが更新されたかどうかにかかわらず、デリバリ サービス内のすべてのコンテンツが再検査され、更新されたコンテンツはダウンロードされます。

ttl 属性に負の値(たとえば、-1)を割り当てると、その項目の再検査は行われません。負の ttl 属性値が指定されると、Fetch Manifest Now ボタンをクリックしても、acquirer start-delivery-service コマンドを使用しても、項目が最新かどうかの検査は行われません。


) CDSM GUI(Services > Service Definition > Delivery Services > Delivery Service Content)で更新間隔を設定すると、マニフェスト ファイル自体が更新されていないかを調べる間隔が設定されます。この設定はマニフェスト ファイルの検査だけに該当し、コンテンツの検査には該当しません。


failRetryInterval 属性は、 ttl 属性と区別して使用してください。fail and retry 機能は、障害のあるコンテンツまたは更新に対するものです。単一項目の取得またはクロールされたコンテンツの取得に失敗した場合、ソフトウェアはデフォルトの間隔(5 分)が経過すると障害の起きたオブジェクトの再取得を自動的に行います。fail and retry 間隔は、マニフェスト ファイルの failRetryInterval 属性を使用して指定することもできます。

failRetryInterval 属性と ttl 属性の違いは、 ttl 属性が正常に取得されたコンテンツに関するものであり、 failRetryInterval 属性がコンテンツ取得の失敗に関するものである点です。 ttl 属性は、コンテンツの更新をソフトウェアに再検査させるために指定する必要がありますが、 failRetryInterval 属性は、リトライ間隔を変更する場合を除いて指定する必要はありません。

expires 属性は、CDS ネットワークからコンテンツが削除される時間を指定します。 expires 属性の設定時に時刻を設定しない場合、マニフェスト ファイルの変更時に明示的に削除されるまで、コンテンツは CDS ネットワーク内に保存されます。 expires 属性は、yyyy-mm-dd hh:mm:ss(year-month-day hour:minute:second)形式を使用します。次の例では、コンテンツは 2003 年 6 月 12 日午後 2 時に期限が切れます。

expires="2003-06-12 14:00:00 PST"
 

expires 属性が <item> タグ内に指定されると、属性はその項目に適用されます。<crawler> タグ内に指定されると、属性はクロール ジョブに適用されます。

コンテンツの複製と更新の状況は、Service Engine に置かれているトランザクション ログ ファイルをイネーブルにし、表示することでモニタできます。コンテンツ オブジェクトまたはファイルが特定の Service Engine に正常にインポートされたか、または Service Engine 上で正常に更新されたかどうかを確認するには、次のことを行います。

モニタする対象の Service Engine 上でトランザクション ログ機能をイネーブルにします。

その Service Engine 上に置かれているコンテンツ オブジェクトまたはファイル名に対応するトランザクション ログ エントリを表示します。

ライブ コンテンツの指定

マニフェスト ファイルで指定できるコンテンツは Windows Media Live コンテンツのみです。次の例のように、<item> タグを使用し、 type 属性を 「wmt-live」と指定します。wmt-live コンテンツ タイプのライブ ストリームは url=rtsp://www.company-web-site.org/tmp/ceo-talk です。

<CdnManifest>
<server name="wmt-server">
<host name="rtsp://www.company-web-site.org" />
</server>
<item src="/tmp/ceo-talk" type="wmt-live" >
</item>
<!--
This is a "wmt-live" streaming content type specified by the "type" attribute. The live
stream URL is
rtsp://www.company-web-site.org/tmp/ceo-talk.
-->
</CdnManifest>
 

ハイブリッド インジェスト コンテンツの指定

ハイブリッド インジェスト コンテンツの場合、コンテンツは CDS ネットワーク内に事前取得されません。コンテンツはユーザの要求に基づいてダイナミックにインジェストされます。このタイプのインジェストは、 ダイナミック インジェスト または オンデマンド インジェスト と呼ばれています。オンデマンド コンテンツの再生を制御するために、 ハイブリッド インジェスト と呼ばれる新しいタイプのインジェストが導入されました。この方法により、マニフェスト ファイルにオンデマンド コンテンツのメタデータを指定できます。ただし、Content Acquirer は実際のコンテンツの取得を行いません。

ハイブリッド インジェストは、<item> タグ内に、 type 属性の値として「cache」を指定するとサポートされます。


) このモードのインジェストは、単一項目のみサポートします。クロールではサポートされません。


ハイブリッド インジェスト コンテンツ対応のマニフェスト ファイルの例を次に示します。

<CdnManifest>
<server name="web-server">
<host name="http://www.company-web-site.org" />
</server>
<item src="/tmp/ceo-talk.wmv" type="cache"
serveStartTime="2007-01-12 14:00:00 PST"
serveStopTime="2007-04-12 14:00:00 PST"
>
</item>
</CdnManifest>

) type="cache" の場合、host タグと server タグは使用されません。



) 現在、type="cache" 属性でサポートされるのは serveStartTimeserveStopTime だけです。


Manifest Validator ユーティリティ

事前取得コンテンツを CDS ネットワーク上に適切に配置するには、マニフェスト ファイルの構文が正しいことが非常に重要です。このためシスコでは、マニフェスト ファイル構文の検証ユーティリティを用意しています。Manifest Validator は、作成または変更したマニフェスト ファイルの構文が正しいことを検証する Java ベースの CLI(コマンドライン インターフェイス)で、CDSM に組み込まれています。

Manifest Validator ユーティリティは、マニフェストファイルの各行を検証して、構文エラーがある場合はそのエラーを特定し、またマニフェスト ファイルが有効で CDS ネットワークへのコンテンツのインポートに使用できるかどうかを判別します。構文の検証テストの結果は、ユーザが指定するロケーションにテキスト ファイルとして記録されます。

Manifest Validator ユーティリティの実行

Manifest Validator にアクセスするには、次の手順を実行します。


ステップ 1 Services > Service Definition > Delivery Services > Tools > Manifest Validator の順に選択します。


) Manifest Validator にアクセスする前に、新しいデリバリ サービスを作成するか、既存のデリバリ サービスを変更する必要があります。


ステップ 2 Manifest File フィールドに、検証対象のマニフェスト ファイルの URL を入力します。

ステップ 3 Validate をクリックします。

Manifest Validator は、マニフェスト ファイルの構文を検証して、マニフェスト内のコンテンツ項目ごとにソース ファイル名が指定されていることを確認します。次に、コンテンツ項目ごとに URL を調べて、コンテンツが正しく配置されていることを確認してから、ページの下側に出力を表示します。Manifest Validator は、項目のサイズは判別しません。

このほかに、Delivery Service Content ページの Validate をクリックする方法もあります。検証の結果は新しいウィンドウに表示されます。


 

正しいマニフェスト ファイル例

次に、正しいマニフェスト ファイルの例を示します。

<CdnManifest>
<item
src="tmp/mao's.html"
priority="20"
/>
<server name="my-dev'box">
<host name="http://128.107.150.26"
proto="http" />
</server>
 
<item
src="tmp/lu.html"
priority="300"
/>
<item
src="/tmp/first_grader.html"
/>
<server name="server0">
<host name="http://umark-u5.cisco.com:8080/" />
</server>
<item •src="a.gif"/>
<server name="server1">
<host name="http://unicorn-web" />
</server>
<item •src="Media/wmtfiles/DCA%20Disk%201/Microsoft_Logos/Logos_100k.wmv" />
 
</CdnManifest>
 

Manifest Validator の出力の最後の行には、マニフェスト ファイルが有効であるかどうかが示されます。マニフェスト ファイルの処理が完了すると、次のメッセージが表示されます。

Total Number of Error: 0
Total Number of Warning: 0
Manifest File is CORRECT.
 

エラーが検出された場合には、上記のメッセージの前にエラー メッセージが表示されます。

誤ったマニフェスト ファイル例

次に、誤ったマニフェスト ファイルの例を示します。

<CdnManifest>
<item
src="tmp/mao's.html"
priority="20"
/>
<server name="my-dev'box">
<host name="http://128.107.150.26"
proto="http" />
</server>
<item
src="tmp/lu.html"
priority="300"
/>
<item
src="/tmp/first_grader.html"
/>
<server name="server0">
<host name="http://umark-u5.cisco.com:8080/" >
</server>
<item src="a.gif"/>
<server name="server1">
<host name="http://unicorn-web" />
</server>
<item src1="Media/wmtfiles/DCA%20Disk%201/Microsoft_Logos/Logos_100k.wmv" />
</CdnManifest>
 

この例では、警告はありませんが、エラーが 2 つ検出されています。また、次のメッセージで示されるように、マニフェスト ファイルの構文に誤りがあります。

ERROR (/state/dump/tmp.xml.1040667979990 line: 23 col: 1 ):No character data is allowed by content model
ERROR (/state/dump/tmp.xml.1040667979990 line: 23 col: 9 ):Expected end of tag 'host' Manifest File: /state/dump/tmp.xml.1040667979990
Total Number of Error: 2
Total Number of Warning: 0
Manifest File is NOT CORRECT!
 

次に、Manifest Validator が誤ったマニフェスト ファイルを検査したあとに表示される出力例の全文を示します。

Manifest validated: http://qiwzhang-lnx/nfs-obsidian/Unicorn/my-single-bad.xml
The manifest is downloaded as /state/dump/tmp.xml.1040667979990 for validation, this file will be removed when validation is completed.
Start CdnManifest
Start item
priority=20
src=tmp/mao's.html
End item
 
Start server
name=my-dev'box
Start host
name=http://128.107.150.26
proto=http
uuencoded=false
End host
 
End server
 
Start item
priority=300
src=tmp/lu.html
End item
 
Start item
src=/tmp/first_grader.html
End item
 
Start server
name=server0
Start host
name=http://umark-u5.cisco.com:8080/
uuencoded=false
ERROR (/state/dump/tmp.xml.1040667979990 line: 23 col: 1 ):No character data is allowed by content model
ERROR (/state/dump/tmp.xml.1040667979990 line: 23 col: 9 ):Expected end of tag 'host' Manifest File: /state/dump/tmp.xml.1040667979990
Total Number of Error: 2
Total Number of Warning: 0
Manifest File is NOT CORRECT!

マニフェスト ファイル検証ユーティリティの概要

Manifest Validator のメッセージは、Manifest Validator ページの Manifest File の下に表示されます。

各出力ファイルは同様の構造と構文を含みます。出力ファイルを見れば、マニフェスト ファイルの誤った構文に起因するエラーまたは警告メッセージが明確に特定できます。Manifest Validator は、マニフェスト ファイルが次のどちらか判別します。

CORRECT ― 構文違反の可能性がありますが、構文上は有効であり、CDS ネットワーク上に配置できます。

INCORRECT ― 構文エラーがあり、CDS ネットワーク上への配置には適しません。

構文エラー

Manifest Validator で構文エラーが表示されるのは、ソース ファイルが特定できない場合のみです。これはソース ファイルが指定されていないか、誤った構文を使用して指定されている場合のどちらかが原因です。構文エラーが含まれているファイルには、INCORRECT とマーク付けされます。

構文エラーは、出力内の ERROR ラベルでわかります。このラベルのほかに、エラーが含まれている行番号と列番号、エラーが出されたマニフェスト属性が表示されます。エラーは次の例のように表示されます。

ERROR (/state/dump/tmp.xml.1040667979990 line: 23 col: 1 ):No character data is allowed by content model
 

エラー例の各要素には、次の意味があります。

/state/dump/tmp.xml.1040667979990 は、マニフェスト ファイル名です。

line:23 col: は、エラーが発生したマニフェスト ファイルの行および列番号です。

No character data is allowed by content model は、マニフェスト ファイル エラーのタイプを説明しています。

構文警告

Manifest Validator は、マニフェスト ファイル構文におけるさまざまな違反に対して構文警告を出します。構文警告が含まれているファイルには、構文エラーも伴っているかどうかに応じて、CORRECT または INCORRECT のマークが付きます。

構文警告は、出力内の WARNING ラベルでわかります。この警告ラベルのほかに、警告に対応する行番号、マニフェスト ファイル属性、有効なオプション、および警告が出された属性のデフォルト値が表示されます。

マニフェスト ファイル構文の修正

Manifest Validator からの出力を使用して、構文に関する警告、エラー、およびメッセージを識別したあと、マニフェスト ファイルを修正し、修正後のファイルに対して Manifest Validator を再実行してエラーなどが修正されていることを確認します。

すべてのマニフェスト ファイル内の警告とエラーを見直すことを推奨します。警告のなかには、マニフェスト検証ユーティリティでマニフェスト ファイル構文が正しいと判定されたものであっても、CDS ネットワークに特定のコンテンツを配置したときに問題の原因となりうるものがあります。

マニフェスト ファイルの構造と構文

シスコのマニフェスト ファイルには、CDS ネットワーク データを作成し、処理する強力な機能があり、このデータは簡易テキスト エディタを使用して容易に編集できます。 表B-4 に、マニフェスト ファイルのタグ、タグに対応する属性とサブ要素、およびタグの簡単な説明の一覧を示します。 表B-5 に、マニフェスト ファイル内にタグをネストする方法の例を示します。そのあとのセクションでは、マニフェスト ファイルのタグ、タグに含まれるデータ、およびその属性について詳しく説明します。

 

表B-4 マニフェスト ファイルのタグのまとめ

タグの名前
サブ要素
属性
説明

CdnManifest

<playServerTable/>
<options/>
<server/>
<item/>
<item-group/>
<crawler/>

なし

マニフェスト ファイルの内容の先頭と末尾をマーク付けします。

playServerTable

<playServer/>

なし

(任意)メディア タイプのデフォルト マッピングを設定します。

playServer

<contentType />
<extension />

name 1

<contentType> タグを使用してマッピングされる、コンテンツ タイプと拡張子付きファイルの再生を処理する、Service Engine 上のメディア サーバ タイプを指定します。

contentType

なし

name

(任意、ただし、<ContentType> または <extension> タグのいずれかが必要)再生サーバにマッピングされる MIME タイプのコンテンツを指定します。

extension

なし

name

(任意、ただし、<ContentType> または <extension> タグのいずれかが必要)再生サーバにマッピングされるファイル拡張子を指定します。

options

<schedule><repeat>

alternateUrl
enableCookies
expires
failRetryInterval
ignoreOriginPort
ignoreQueryString
notFoundURL

prefetch
priority
wmtRequireAuth
server
sslAuthtype
timeZone
ttl
type

(任意)共有可能なマニフェスト ファイルに固有の属性を定義します。

server

<host/>

name

コンテンツが取得される元のホストを 1 つだけ定義します。

host

なし

name

disableBasicAuth
noProxy
ntlmUserDomain
password
port
proto

proxyServer
sslAuthType
user
userDomainName
uuencoded

コンテンツが取得され、あとで事前取得される元の Web サーバまたはライブ サーバを定義します。

ホスト名は次のように指定できます。

proto://user:password@hostname:port

proxyServer

なし

serverName

disableBasicAuth
ntlmUserDomain
password

port
user
uuencoded

プロキシ サーバ情報を指定します。

item

<contains />

src
alternateUrl
authCookie
cdn-url
disableBasicAuth
enableCookies
expires
failRetryInterval
host
ignoreOriginPort
ignoreQueryString
noProxy
ntlmUserDomain
password
playServer
port


prefetch
priority
proto
proxyServer
server
serveStartTime
serveStopTime
sslAuthType
ttl
type
user
userDomainName
uuencoded
wmtRequireAuth

送信元サーバから取得される特定のコンテンツを識別します。

crawler

<matchRule/>
<schedule><repeat>

start-url
accept
alternateUrl
authCookie
cdnPrefix
depth
disableBasicAuth
enableCookies
expires
externalPrefixes
externalServers
failRetryInterval
host
ignoreOriginPort
ignoreQueryString
keepExpiredContent
keepFolder
keepNoCacheContent
keepQueryUrl
max-number
maxTotalSizeIn-MB
noProxy
ntlmUserDomain

password
playServer
port
prefetch
prefix
priority
proto
proxyServer
reject
reportBrokenLinks
serveStartTime
serveStopTime
server
srcPrefix
sslAuthType
ttl
type
user
userDomainName
uuencoded
wmRequireAuth

Web サイトまたは FTP サーバのクロールをサポートします。

item-group

<item/>
<crawler/>
<item-group/>

alternateUrl
cdnPrefix
cdn-url
disableBasicAuth
enableCookies
expires
failRetryInterval
host
ignoreOriginPort
ignoreQueryString
noProxy
password
playServer
prefetch
priority

proto
proxyServer
requireAuth
serveStartTime
serveStopTime
server
src
srcPrefix
sslAuthType
ttl
type
user
userDomainName
uuencoded
wmtRequireAuth

共有属性を 1 つのタグの下において、そのグループ内のすべての <item> タグと <crawler> タグがそれらの属性を共有できるようにします。

matchRule

<match>

なし

(任意)クローラー ジョブに追加のフィルタ規則を定義します。

match

なし

extension
mime-type
prefix
minFileSizeIn-B
minFileSizeIn-KB
minFileSizeIn-MB

maxFileSizeIn-B
maxFileSizeIn-KB
maxFileSizeIn-MB
time-after
time-before
url-pattern

(任意)CDS ネットワークによってコンテンツ オブジェクトが取得される前の取得基準を指定します。

contains

なし

cdn-url

(任意)現在記述されているコンテンツ項目内に組み込まれているコンテンツ オブジェクトを識別します。

1.タグの必須属性は、太字のイタリック体で示されています。

 

表B-5 マニフェスト内にネストされるタグの関係

<CdnManifest>

<playServerTable>
<playServer>

 

<contentType />
<extension />

</playServerTable>
</playServer>

<options>

マニフェスト ファイルの共有属性

</options>

<server>

<host/>

</server>

<item>

<contains />

</item>

<crawler>

<matchRule/>

</crawler>

<item-group>

<contains />

</item-group>

</CdnManifest>

CdnManifest

<CdnManifest> </CdnManifest> タグ セットは必須であり、マニフェスト ファイルの内容の先頭と末尾をマーク付けします。最低限の構成として、各 <CdnManifest> タグ セットには取得および保存される項目、つまりコンテンツ オブジェクトが少なくとも 1 つ含めなければなりません。

属性

なし

サブ要素

<CdnManifest> タグ セットは、次のサブ要素を含むことができます。

playServerTable

<CdnManifest> タグ セットは、1 つの playServerTable サブ要素しか含むことができません。

options

<CdnManifest> タグ セットは、1 つの options サブ要素しか含むことができません。

server

item

item-group

crawler

<CdnManifest>
<server name="origin-server">
<host name="www.name.com" proto="http" port="80" />
</server>
<item cdn-url= "logo.jpg" server="originserver" src= "images/img.jpg" type="prepos"
playServer="http" ttl="300"/>
</CdnManifest>
 

playServerTable

<playServerTable> </playServerTable> タグ セットは任意であり、これを使用してさまざまなメディア タイプのデフォルト マッピングを設定できます。マッピングは、MIME タイプ コンテンツ(優先マッピング)とファイル拡張子の両方に対して設定できます。再生サーバ テーブルを使用すると、特定の送信元サーバからのコンテンツ タイプに対するデフォルト マッピングを Server Engine 上で上書きできます。再生サーバには、4 つのストリーミング サーバ(WMT、HTTP、QTSS、または FMS)のいずれかを使用できます。マニフェスト ファイルに <playServerTable> タグが設定されていない場合、デフォルトの <playServerTable> タグが使用されます。


) Flash Media Streaming(FMS)はリリース 2.1 の機能です。したがって、この機能はリリース 2.0 では使用できません。


マニフェスト ファイルを使用すると、個々のコンテンツ オブジェクトと同様に単一項目のグループも、インストールされている再生サーバにマッピングできます。コンテンツ項目とマニフェスト ファイルの再生サーバ マッピングは、次のとおりです。

コンテンツ項目 URL

再生サーバ マッピングは、デフォルトの <CdnManifest> タグの代わりに、送信元サーバ名の直後に表示されます。

<item> または <item-group> タグの属性としてのマニフェスト ファイル

このロケーションに置かれた再生サーバ マッピングは、 playServer 属性を使用して識別され、指定された項目または項目のグループだけに適用されます。

再生サーバ テーブルとしてのマニフェスト ファイル

マッピングは、<playServerTable> および <playServer> タグ内でグループ化され、マニフェスト ファイルで指示されたとおりに、送信元サーバから提供されるコンテンツに適用されます。

システム レベル

再生サーバ マッピングは、CDS ソフトウェアの起動時に設定されます。

<playServerTable> タグは <CdnManifest> タグで囲まれ、特定の MIME タイプとファイル拡張子のマッピング先である、4 つの再生サーバのうちの少なくとも 1 つ(たとえば、RealServer)を指定します。

属性

なし

サブ要素

<playServerTable> 要素には、少なくとも 1 つの <playServer> タグを含める必要があります。

playServer

<playServer> </playServer> タグ セットは、<playServerTable> タグに必須のタグ セットです。このタグ セットでは、<contentType> タグを使用してマッピングされる、コンテンツ タイプと拡張子付きのファイルの再生を処理する Service Engine 上のメディア サーバ タイプを指定します。<playServer> タグは <playServerTable> タグで囲みます。


) <playServer> タグと、<item> または <item-group> タグ内の再生サーバの属性と混同しないように注意してください。<item> または <item-group> タグは、コンテンツ オブジェクト個々に、または関連するコンテンツ オブジェクトのグループに使用されるサーバ タイプを指定します。両方の再生サーバ設定で同じタスクが達成されますが、<item> タグ レベルの再生サーバ設定のほうが、<playServerTable> タグ内の <playServer> タグで指定したコンテンツ タイプとファイル拡張子のマッピングより優先します。


属性

<playServer> タグは必須です。各 <playServer> タグは、 name 属性を使用して、コンテンツのマッピング先であるサーバのタイプを指定します。Service Engine は次の 3 つのタイプの再生サーバをサポートします。

http:HTTP Web サーバ

qtss:Apple QuickTime Streaming Server

wmt:Microsoft Windows Media Technologies

fms:Flash Media Streaming Server


) Flash Media Streaming はリリース 2.1 の機能です。したがって、この機能はリリース 2.0 では使用できません。


サブ要素

<playServer> タグ セットには、次のサブ要素の少なくとも 1 つが存在する必要があります。

<contentType />

<extension />

contentType

<contentType /> タグは任意ですが、<contentType /> サブ要素か <extension /> サブ要素のどちらかが <playServer> タグ セット内に存在する必要があります。<contentType /> タグでは、再生サーバにマッピングされる MIME タイプのコンテンツの名前を指定します。<contentType /> タグは <playServer> タグ セットで囲まれている必要があります。<contentType /> タグと <extension /> タグの両方が、特定のメディア タイプの <PlayServerTable> タグ内に存在する場合、<contentType /> のマッピングが優先します。

属性

各 <contentType /> タグは、 name 属性を使用して再生サーバにマッピングされるメディア コンテンツ タイプの名前を指定します。 name 属性は必須です。

サブ要素

なし

extension

<extension /> タグは任意ですが、<contentType /> サブ要素か <extension /> サブ要素のどちらかが <playServer> タグ セット内に存在する必要があります。<extension /> タグは、再生サーバにマッピングされるファイル拡張子の名前を指定します。

<extension /> タグは、<playServer> タグのあとに続きます。<contentType /> タグと <extension /> タグの両方が、特定のメディア タイプの <playServer> タグ内に存在する場合、<contentType /> のマッピングが優先します。

属性

name 属性は必須であり、マッピングされるコンテンツ タイプのファイル拡張子を指定します。指定された拡張子を持つファイルが要求された場合、マッピングされた再生サーバを使用してそれらのファイルを提供します。

サブ要素

なし

<CdnManifest>
<playServerTable>
<playServer name="wmt">
<extension name="asx" />
<extension name="asf" />
<extension name="avi" />
</playServer>
<playServer name="http">
<contentType name="application/pdf" />
<contentType name="application/postscript" />
<extension name="pdf" />
<extension name="ps" />
</playServer>
</playServerTable>
<server name="test.origin.com/">
<host name="http://tst.orgn.com" proto="http" />
</server>
<item
src="pic1.mpg"
/>
</CdnManifest>

options

<options> タグは任意であり、マニフェスト ファイル固有の属性を定義するのに使用します。共有される属性は、マニフェスト ファイル内の <item> タグと <crawler> タグで継承できます。たとえば、 timeZone は、時間に関連したすべての値に時間帯を設定するために使用される、マニフェスト ファイル固有の属性です。ttl や alternativeUrl などの属性は、<options/> タグとして指定することができ、マニフェスト ファイル内のすべての <item> タグと <crawler> タグがその属性値を共有できます。

<options/> タグ セットは、<CdnManifest> タグ セットで囲まれ、グローバル設定を最低 1 つ指定します。マニフェスト ファイルごとに <options> タグを 1 つしか指定できません。

マニフェスト ファイルの <options/>、<item-group>、または <item> タグ内でパラメータが定義された場合、優先順位は低いほうから順に、<options/>、<item-group>、<item> となります。

属性

timeZone 属性は、 expire prefetch などの属性の時間値の時間帯を指定します。

notFoundURL 属性は任意です。この属性は alternateUrl と同様です。ユーザが要求したコンテンツが CDS ネットワーク内に用意できていない場合、CDS ソフトウェアはこの代替 URL に要求を転送します。この代替 URL はエラー報告ページとして設定できます。 notFoundURL 属性は、フルパスの URL だけをサポートします。

次に、<item> タグと <crawler> タグが共有できる属性のリストを示します。次の属性の説明については、「item」を参照してください。

alternateUrl

enableCookies

expires

failRetryInterval

ignoreOriginPort

ignoreQueryString

prefetch

priority

wmtRequireAuth

server

sslAuthType

ttl

type

サブ要素

<schedule><repeat>

これらのサブ要素の説明については、「item」を参照してください。

server

<server> と <host> タグ フィールドでは、オリジン コンテンツのソース サーバを設定します。<server> タグ フィールド内の <host> タグ フィールドでは、コンテンツのソース ホストを設定します。1 つの<server> タグ フィールド内への複数の <host> タグ フィールドの指定はサポートされていません。

各 <item> または <item-group> タグには、この server タグ フィールドを参照する <server> 属性を指定できます。<server> </server> タグ セットは必須であり、コンテンツが取得される元のホストを 1 つだけ定義します。<server> タグは <CdnManifest> タグ内に含まれ、コンテンツが取得される元のホストを識別する <host> タグを 1 つ含みます。

属性

name 属性は必須であり、<item> または <crawler> タグ内の server 属性値と一致するかぎり、任意の名前を指定できます。

サブ要素

<server> タグ セットは、1 つの <host/> サブ要素しか含むことができません。

host

<host/> タグは必須であり、コンテンツが取得され、あとで事前取得される元の Web サーバまたはライブ サーバを定義します。1 つの <server> タグ セット内には、1 つのホストしか定義できません。<host/> タグは、<server> タグで囲まれている必要があります。

属性

disableBasicAuth

disableBasicAuth 属性は任意です。指定された場合、基本認証がディセーブルになります。

name

name 属性は必須であり、ホストのドメイン名または IP アドレスを識別します(ただし、 proto 属性フィールドが空の場合を除きます)。 proto 属性フィールドが空の場合、 name 属性は、スキームおよびドメイン名または IP アドレスを含む完全修飾 URL である必要があります。また、 http://www.abc.com/media のように、サブディレクトリも含むこともできます。

The name 属性には、SMB サーバへの UNC パスも含めることができます
(例:\\SMBserver\directory\)。

noProxy

noProxy 属性は任意です。true に設定すると、送信元サーバに対するプロキシは使用されません。デフォルトは false です。

ntlmUserDomain

ntlmUserDomain 属性は任意であり、NTLM 認証用のユーザ ドメイン名を指定します。

password

password 属性は任意であり、ホスト サーバへのアクセスに必要なユーザ アカウントのパスワードを識別します。

port

port 属性は任意であり、ホストとの間で両方向にトラフィックが通過する TCP ポートを識別します。使用されるポートは、使用されるプロトコルによって異なります。HTTP のデフォルト ポートは 80 です。 port 属性は非標準のポート割り当てを行う場合にのみ必要です。ポート属性は name 属性でも指定できます(たとえば、name="http://www.cisco.com:8080/")。

proto

proto 属性は任意であり、ホストからコンテンツを取得するために使用される通信プロトコルを識別します。サポートされるプロトコルは、HTTP、HTTPS、MMS-over-HTTP、または FTP です。デフォルトの proto 属性は HTTP です。name 属性が Fully Qualified Domain Name(FQDN; 完全修飾ドメイン名)である場合は、 proto 属性を空にできます。

proxyServer

proxyServer 属性は任意であり、マニフェスト ファイル内に複数の <proxyServer> タグがある場合に、どのプロキシ サーバを使用するかを指定します。プロキシ サーバが指定されない場合、最も近い <proxyServer> タグ内のサーバが使用されます。

sslAuthType

sslAuthType 属性は任意であり、SSL 認証確認のタイプとして次の 2 つの可能値を持ちます。

strong ― 強化認証。取得モジュールによる認証確認時にエラーが発生した場合、そのサイトからのコンテンツは取得されません。デフォルトの sslAuthType 属性は strong です。

weak ― 弱い認証。取得モジュールによる認証確認時に発生するエラーの種類によっては、そのサイトからのコンテンツは継続して取得されます。該当するエラーは、次のとおりです。

Unable to decode issuer's public key(発行者の公開鍵をデコードできない)

Certificate has expired(証明書の有効期限切れ)

Self-signed certificate(自己署名証明書)

Self-signed certificate in certificate chain(証明書チェーン内の自己署名証明書)

Unable to get local issuer certificate(ローカルの発行者の証明書を取得できない)

Subject issuer mismatch(証明書の発行者のミスマッチ)

Authority and issuer serial number mismatch(権限と発行者のシリアル番号のミスマッチ)

The Content Acquirer is not marked as trusted(Content Acquirer が信頼できるというマーク付けがされていない)

Unable to verify the first certificate(最初の証明書を確認できない)

Certificate is not yet valid(証明書がまだ有効でない)

Certificate has invalid purpose(証明書が無効)

user

user 属性は任意であり、ホスト アクセスに使用されるセキュア ログインを識別します。

userDomainName

この属性の説明については、「item」を参照してください。

uuencoded

uuencoded 属性は任意です。true に設定された場合、パスワードは符号化されません。 uuencoded 属性のデフォルト設定は false です。

サブ要素

なし

proxyServer

<proxyServer> タグは、プロキシ サーバ情報を指定します。<proxyServer> タグは、マニフェスト ファイルの一番上のレベル、<CdnManifest> タグのすぐ下に置く必要があります。他のタグのサブタグとしては使用できません。次に例を示します。

<CdnManifest>
<proxyServer>
...
</CdnManifest>
</proxyServer>
 

属性

disableBasicAuth

disableBasicAuth 属性は任意です。指定された場合、基本認証がディセーブルになります。

ntlmUserDomain

ntlmUserDomain 属性は任意であり、NTLM 認証用のユーザ ドメイン名を指定します。

password

password 属性は任意であり、プロキシ サーバへのアクセスに必要なユーザ アカウントのパスワードを識別します。

port

port 属性は任意であり、プロキシ ポートを指定します。

serverName

serverName 属性は必須であり、プロキシ サーバのドメイン名または IP アドレスを識別します。

user

user 属性は任意であり、プロキシ認証に使用されるセキュア ログインを識別します。

uuencoded

uuencoded 属性は任意であり、パスワードを符号化するかどうかを指定します。

サブ要素

なし

item

<item> </item> タグ セットは、取得される特定のコンテンツを識別します。<item> タグは、送信元サーバ上の 1 つのコンテンツまたはコンテンツ オブジェクトを指定します(たとえば、グラフィック、MPEG ビデオ、RealAudio サウンド ファイル)。コンテンツ項目は、個別に示すことも、<item-group> タグを使用してグループ化することもできます。

<item> タグは <CdnManifest> タグ セットで囲む必要があります。また、<item-group> タグで囲むこともできます。

属性

src

src 属性は必須であり、コンテンツを取得する元の URL を識別します。URL はフルパスの URL または相対 URL を使用できます。フルパスの URL 形式は、次のとおりです。

proto://username:password@/domain-name:port/file-path/file-name

item src でサポートされるプロトコルは、HTTP、HTTPS、FTP、および SMB です。SMB の場合、URL を UNC 形式(\\SMBserver\directory\file)で記述する必要があります。

相対パスを使用する場合は、送信元サーバ情報の指定に <server> と <host> タグが必要です。次に例を示します。

<item src="http://user:password@www.cisco.com/HR/index.html" />
<server name="ftp-server" >
<host name="ftp://ftp-server" user="johw" password="wwww" />
</host>
<item src="data/video.asf" />
 

) 疑問符(?)を含む URL はサポートされていません。疑問符を含む URL を指定すると、マニフェスト ファイル解析でエラーになります。



) ポンド記号(#)を含む URL は変更されます。ポンド記号に続く文字は、ポンド記号を含めてすべて廃棄されます。


host

host 属性は、 src 属性のソース URL が相対 URL の場合に、ホスト名を指定します。

server

server 属性は任意であり、<server> タグ内のサーバ名を参照します。 server 属性が省略された場合、最も近い <server> タグ内のサーバが使用されます。この項目の近くに <server> タグがない場合、マニフェスト ファイル サーバが使用されます。

cdn-url

cdn-url 属性は任意であり、コンテンツを、ある URL(コンテンツ取得 URL)から取得し、別の URL(パブリッシング URL)を使用してパブリッシングする必要がある場合に使用します。 cdn-url 属性は、エンド ユーザがこのコンテンツをアクセスするために使用する相対 CDS ネットワーク URL です。 cdn-url 属性が指定されていない場合、 src 属性が相対 CDS ネットワーク URL として使用されます。

次の例のマニフェスト ファイルでは、取得されるコンテンツ項目にファイル パス
/RemAdmin/InternalReview/firstpage.htm が含まれています。 cdn-url 属性で新しいファイル パス(RemAdmin/Production/firstpage.htm)を指定することで、コンテンツの取得元が「Internal Review」であることを隠しています。

<CdnManifest>
<server name="ultra-server">
<host name="http://ultra-server" />
</server>
<item src="RemAdmin/InternalReview/firstpage.htm" cdn-url="RemAdmin/Production/firstpage.htm" />
</CdnManifest>
 

前述の例では、 src はコンテンツ取得 URL であり、 cdn-url はパブリッシング URL です。


) コンテンツ項目のファイル パス(RemAdmin/InternalReview/firstpage.htm)はマニフェスト ファイルにより制御されます。cdn-url 属性が、ファイル パスをマニフェスト ファイル内のコンテンツ項目に関連付けます。マニフェスト ファイルを使用すると、cdn-url 属性に対するファイル パスを、コンテンツ取得元の送信元サーバ(src 属性)のファイル パスと無関係に指定できるので、パブリッシング URL をコンテンツ取得 URL とは異なるものにできます。


コンテンツが再生認証を必要とする場合、またはライブ コンテンツの場合には、コンテンツを取得する送信元サーバに問い合わせを行う必要があります。したがって、同じコンテンツ項目に 2 つの URL が存在する必要があり、 cdn-url 属性で指定される URL が送信元サーバ上に常に存在する必要があります。

たとえば前述の例で、コンテンツ項目「RemAdmin/Production/firstpage.htm」の再生に認証が必要な場合、このコンテンツは「ultra-server」上に存在していなければなりません。そうでない場合、事前取得コンテンツの再生に失敗します。

一般に、再生時に認証が必要な場合、またはライブ コンテンツの場合には、 cdn-url cdnPrefix 、または srcPrefix 属性を使用しないようにします。

FTP を使用してコンテンツを取得するときに、マニフェスト ファイルにコンテンツ タイプを指定せず、 cdn-url 属性を指定してパブリッシング URL を変更することが指定されている場合には、 cdn-url 属性に正しいファイル パス拡張子が必要です。拡張子を間違えると、誤ったコンテンツ タイプが生成され、コンテンツを再生できません。

次の例では、送信元サーバの URL と同じファイル パス拡張子(.jpg)を持つパブリッシング URL が正しく示されています。

<item src="ftp://ftp-server.abc.com/pictures/pic.jpg" cdn-url="pic.jpg" />
 

次の例では、 cdn-url 属性にファイル パス拡張子(.jpg)が指定されていない誤った記述です。

<item src="ftp://ftp-server.abc.com/pictures/pic.jpg" cdn-url="pic" />
 

type

type 属性は任意であり、コンテンツが事前取得されるのか CDS ネットワーク上のライブなのかを定義します。type 属性には、prepos、cache、および wmt-live の 3 つがあります。wmt-live 属性は、ライブ コンテンツの配布に使用されます。cache タイプは、ハイブリッド インジェスト方式に対応します。このフィールドを空白にした場合、デフォルト タイプは prepos です。


) type="cache" の場合、host タグと server タグは使用されません。



) 現在、type="cache" 属性でサポートされるのは serveStartTimeserveStopTime だけです。


playServer

playServer 属性は任意であり、コンテンツの再生に使用されるサーバの名前を指定します。有効な再生サーバは wmt(Windows Media Technologies)、qtss(QuickTime Streaming Server)、fms(Flash Media Streaming)、および http(Web Engine)です。このフィールドの値には、1 つの再生サーバか、カンマで区切った複数の再生サーバを指定します。この属性の値が指定されない場合、このコンテンツの再生サーバ リストはマニフェスト ファイル内の <PlayServerTable> タグを使用して生成されます。マニフェスト ファイルに <PlayServerTable> タグが指定されていない場合、デフォルトの <PlayServerTable> タグが使用されます。

prefetch

prefetch 属性は任意であり、コンテンツの初回取得の時刻、またはマニフェスト ファイル ファイル解析後の再チェックの時刻を yyyy-mm-dd hh:mm:ss (year-month-day hour:minute:second)形式で指定します。この時刻の時間帯は、<options> タグで指定できます。時間帯における夏時間と標準時間との自動変換はサポートされませんが、夏時間の特別な指定(たとえば、太平洋夏時間の PDT)を使用できることに留意してください。次の例では、事前取得時間は太平洋夏時間の 2002 年 9 月 5 日午前 9 時 9 分 9 秒です。

<options timeZone="PDT" />
<item src="index.html" prefetch="2002-09-05 09:09:09 PDT" />
 

この属性は、送信元サーバからコンテンツの取得を開始する時刻をコンテンツ取得機能に指定する場合に使用します。コンテンツを取得する時刻が指定されると、その時刻より前にコンテンツ取得機能がコンテンツを取得することはありませんが、 ttl 間隔でコンテンツが更新されているかどうかの確認は行われます。 prefetch 時刻が省略された場合、コンテンツは即時に取得されます。

マニフェスト ファイルの解析後、どれかの項目またはクロール タスクが変更または新規追加され、 prefetch 属性で次回の時刻が指定された場合には、取得機能はコンテンツの確認と取得を行うか、または prefetch 属性によって指定された時刻にクロール ジョブを再びクロールします。

expires

expires 属性は任意であり、コンテンツが CDS ネットワークから削除される時刻を yyyy-mm-dd hh:mm:ss 形式で指定します。また、GMT 時間帯も指定できます。時間値が省略された場合、関連するマニフェスト ファイル コードの変更時に削除されるまで、コンテンツは保存されます。

ttl

ttl 属性は任意であり、コンテンツの再検証の時間間隔を分単位で指定します。時間値が省略された場合、コンテンツは 1 回だけ取得され、更新されているかどうかはチェックされません。通常、 ttl 属性は正の値ですが、 ttl 属性に負の値を割り当てることもできます。次の表で、 ttl 属性値の範囲について説明します。

 

ttl 属性値
処理

ttl > 0

コンテンツは ttl 分ごとに再検査されます。また、マニフェスト ファイルが再解析されマニフェスト ファイルのコンテンツの仕様が変更されていた場合、または Refetch ボタンをクリックした場合も、コンテンツの再検査が行われます。

ttl = 0

コンテンツは 1 回だけ取得され、再検査は行われません。また、マニフェスト ファイルが再解析されマニフェスト ファイルのコンテンツの仕様が変更されていた場合、または Refetch ボタンをクリックした場合のみ、コンテンツの再検査が行われます。

ttl < 0

コンテンツは 1 回だけ取得され、再検査は行われません。マニフェスト ファイルが再解析された場合や、 Refetch ボタンをクリックした場合にも、コンテンツの再検査は行われません。

serveStartTime

serveStartTime 属性は任意であり、CDS ソフトウェアがコンテンツの提供を開始できる時刻を yyyy-mm-dd hh:mm:ss 形式で指定します。提供時刻が省略された場合、Service Engine または他のエッジ デバイスにコンテンツが配信されると、コンテンツを提供できる状態になります。

serveStopTime

serveStopTime 属性は任意であり、CDS ソフトウェアがコンテンツの提供を一時的に停止する時刻を yyyy-mm-dd hh:mm:ss 形式で指定します。提供を停止する時刻が省略された場合、関連するマニフェスト ファイル コードの変更時にコンテンツが削除されるまで、CDS ソフトウェアはコンテンツを提供します。

alternateUrl

alternateUrl 属性は任意です。ユーザが要求したコンテンツが CDS ネットワーク内に用意できていない場合、CDS ソフトウェアはこの代替 URL に要求を転送します。この代替 URL は、エラー報告ページとして設定できます。 alternateUrl 属性は、完全 URL だけをサポートします。

この属性は、要求されるコンテンツに対して適用されます。コンテンツを削除する場合、この属性を適用しません。ただし、コンテンツの取得に失敗した場合は、この属性を適用する必要があります。

priority

priority 属性は任意であり、コンテンツ処理のプライオリティを任意の整数値で指定します。プライオリティ値が省略された場合、マニフェスト ファイル内の索引順序を使用してプライオリティが設定されます。

wmtRequireAuth

wmtRequireAuth 属性は任意であり、指定されたコンテンツを再生する前にユーザを認証する必要があるかどうかを決定します。値が true である場合、ユーザに指定されたコンテンツを再生するには認証が必要となり、Service Engine はクレデンシャルを検査するためにオリジン サーバと通信します。クレデンシャルの検査に合格すると、コンテンツは Service Engine から再生されます。この属性が省略された場合、発見的解決法で値が決定されます。つまり、指定されたコンテンツがユーザ名とパスワードを使用して取得される場合、wmtRequireAuth は true に設定され、それ以外の場合は false に設定されます。FTP の場合、ユーザ名が匿名であれば、wmtRequireAuth は false に設定されます。


wmtRequireAuth が true である場合、このデリバリ サービスの Content Origin ページの Origin Server フィールドに、ユーザを認証できるサーバを設定する必要があります。ユーザがコンテンツを再生したい場合には、この Origin Server フィールドに指定されたサーバが認証のために調べられます。


failRetryInterval

failRetyryInterval 属性は、コンテンツの取得に失敗したときのリトライ間隔を分単位で指定します。たとえば、failRetryInterval="10" は、コンテンツの取得に失敗したあと、10 分ごとにコンテンツの取得を試行することを意味します。リトライ間隔値が指定されない場合、デフォルト値は 5 分です(受け入れられる最小の failRetryInterval 値)。5 分未満の値が指定された場合、その値は 5 分に変換されます。

単一項目のコンテンツ取得に失敗した場合と、クロール項目のコンテンツ取得に失敗した場合では、動作が異なります。

単一項目での失敗

if ( ttl != 0, ttl < retryInterval)
 

項目は ttl 属性に従って再検査されます。それ以外の場合、項目は failRetryInterval 属性で指定された間隔で再検査されます。

クロール項目での失敗

if ( ttl != 0 and ttl < retryInterval )
always re-crawl
 

一部の項目が取得できない場合(300 ~ 400 番台のエラー コードを除く)、取得できなかった項目だけが failRetryInterval 属性の指定に従って再検査されます。

ttl 属性の間隔に達すると、すべてのページが再クロールされます。

たとえば、 ttl = 10 で、 failRetryInterval = 4 である場合、次の動作が行われます。

 

処理

0

クロール

4

再検査に失敗

8

再検査に失敗

10

再クロール

14

再検査

18

再検査

20

再クロール

ignoreQueryString

ignoreQueryString 属性は、< options>、<item-group>、<item>、および <crawler> タグで使用できる再生属性です。値が true に設定されている場合、CDS ソフトウェアは、再生を要求する URL 内にある疑問符(?)のあとのストリングをすべて無視します。この属性が省略された場合、デフォルト値は false です。

たとえば、要求 URL「url=http://web-server/foo」を持つコンテンツが事前取得されているとします。ユーザが URL「url=http://web-server/foo?id=xxx」を持つコンテンツを要求し、 ignoreQueryString 属性値が false である場合、CDS ソフトウェアは、要求 URL「http://web-server/foo」からの事前取得コンテンツを使用しません。

ただし、 ignoreQueryString 属性が true である場合は、CDS ソフトウェアは、要求 URL「http://www-server/foo?id=xxx」を「http://www-server/foo」と同一に扱い、事前取得コンテンツを戻します。

ignoreOriginPort

ignoreOriginPort 属性を使用すると、標準ポート以外のポートから事前取得コンテンツを再生できます。 ignoreOriginPort 属性が true である場合、要求 URL で指定されたポートと関係なくコンテンツを再生できます。この属性のデフォルトは false です。

この属性は、サービス ルータでルーティングされるコンテンツには使用できません。明示的なプロキシ ルーティングの場合にのみ使用できます。 ignoreOriginPort 属性の一般的な使用方法に関するシナリオは、次のとおりです。

オリジン Web サーバはポート 80 を使用せず、URL 内で非標準のポート番号を使用します。

ユーザは明示的なプロキシ ルーティングを使用します。この場合、非標準のポート番号を含んだオリジナルの URL は Service Engine からの再生に使用されます。

事前取得コンテンツは、非標準ポートを使用して再生できません。事前取得コンテンツは、使用するプロトコルの標準ポートでのみ提供されます。着信 URL にプロトコルの標準ポート以外のポート番号が含まれる場合は、 ignoreOriginPort 属性を true に設定して再生が正常に行われるようにする必要があります。

userDomainName

userDomainName 属性は、次の 2 つのケースで使用します。(1)NTLM 認証の場合、(2)SMB ファイル インポート機能の場合。送信元サーバが NTLM 認証を使用している場合は、この属性を使用して NTLM 認証のユーザ ドメイン名を指定する必要があります。共有フォルダが保護されていて、ユーザ アカウントがドメインに所属している場合は、設定されている共有フォルダのドメイン名をこの属性を使用して指定する必要があります。


userDomainNamentlmUserDomain はマニフェスト ファイル内に共存できません。同時に使用できる属性は 1 つだけです。


enableCookies

enableCookies 属性を使用すると、項目に対するクッキーのサポートがイネーブルになります。この属性が true に設定されている場合、Content Acquirer は、項目の要求を送信元サーバに送信したあと、サーバの応答を解析してクッキー名/値ペアを調べます。サーバの応答に含まれているクッキーが有効で期限切れでない場合、Content Acquirer はそのクッキーをメイン メモリに保存します。

Content Acquirer はそのあと、次回にこの項目の要求を送信する際に、サーバに有効なクッキーを戻します。

クッキーに次のいずれかの拒否基準が含まれている場合、クッキーは RFC 2965 に従って拒否されます。

Path 属性値が要求 URI のプレフィクスではない。
たとえば、要求が www.abc.com/aaa/bbb/ccc.html で、戻されたクッキーの Path 属性が /aaa/ccc の場合、/aaa/ccc は /aaa/bbb/ccc [URL] のプレフィクスではないので、Path 属性は無効です。

Domain 属性値に埋め込みのドットが含まれていないか、ドットで開始していない。

要求ホスト値が Domain 属性のドメインと一致しない。

要求ホストが(IP アドレスではなく)FQDNで、HD 形式である(この場合、D は Domain 属性値、H は 1 つまたは複数のドットを含んだストリングです)。

Path 属性が要求 URL のプレフィクスと一致しない。


) Content Acquirer は、クッキーの保存に不揮発性メモリを使用しません。Service Engine が再起動された場合、すべてのクッキー情報が失われます。


enableCookies 属性は、<item>、<crawler>、<item-group>、および <options> タグと一緒に使用できます。

authCookie

authCookie 属性を使用すると、項目に対する認証クッキーの処理と送信がイネーブルになります。この機能をイネーブルにするには、ユーザ証明書を送信しそれに対しサーバから認証クッキーが送り返される特定の項目の authCookie 属性を true に設定する必要があります。

authCookies 属性は、<item> および <crawler> タグと一緒に使用できます。次に例を示します。

<item src=http://abc.com/auth.cgi?id=10000 authCookie="true"/>

<host> タグの属性のところで説明した次の属性は、<item> タグでも指定できます。

disableBasicAuth

noProxy

ntlmUserDomain

password

port

proto

proxyServer

sslAuthType

user

uuencoded

サブ要素

<contains />

<schedule/> <repeat/>

<schedule/> <repeat/> サブ要素とその属性には、再クロールまたは項目の再取得を開始する時刻を指定します。<schedule> サブ要素の下に、複数の <repeat> サブ要素を指定できます。 time、start、 および end 属性では、月の日付または曜日と、指定の繰り返しを行う期間を指定します。 time 属性は必須ですが、 start end 属性は任意です。


) <schedule> 要素は、ttl 属性より優先します。


time 属性には、次のいずれかの形式を使用します。

time="dom:hh:mm" または

time="dow:hh:mm"

この公式では、dom は月の日付(0 ~ 30)、dow は曜日(Sun、Mon、Tue、Wed、Thu、Fri、Sat、または *)、hh は時間(0 ~ 23 または *)、mm は分(0 ~ 59)を表します。

次に例を示します。

<schedule>
<repeat time="*:*:0" /> <!-- repeat every hour on the hour -->
<repeat time="*:13:0" /><!-- repeat at 1300 every day -->
<repeat time="Sun:2:30" /> <!-- repeat on Sundays at 2:30 -->
<repeat time="4:2:30" /> <!-- repeat at 2:30 on the fourth day of the month -->
<repeat time="Mon:*:30" /> <!-- On Monday, repeat every hour at 30 minutes past
the hour -->
</schedule>
 

start end 属性には、次の形式を使用します。

start="yyyy-mm-dd hh:mm:ss"

end="yyyy-mm-dd hh:mm:ss"

次に例を示します。

<CdnManifest>
<item>
<schedule>
<repeat time="Sun:02:30" />
<repeat time="*:*:34" start="2003-09-11 11:11:11 PST" end="2004-09-11 11:11:21 PST"/>
<repeat time="21:02:35" start="2003-09-11 11:11:11 PST" end="2004-09-11 11:11:21 PST"/>
<repeat time="21:02:35" end="2004-09-11 11:11:21 PST"/>
</schedule>
</item>
.
.
.
 

<item
src="index.html"
server="cisco.com"
ttl="3000"
alternateUrl="http://www.cisco.com/cdn-error.html"
/>

crawler

<crawler> </crawler> タグ セットは、Web サイトまたは FTP サーバのクロールをサポートします。

属性

start-url

start-url 属性は必須です。Web サイトまたは FTP サーバのクロールを開始する URL を定義します。この属性は item タグで使用される <src> 属性と同じです(src を参照)。

host

start-url 属性で指定される開始 URL が相対 URL の場合には、 host 属性でホスト名を指定します。

depth

depth 属性は任意であり、Web サイトがクロールされる場合のリンクの深さ、または FTP サーバがクロールされる場合のディレクトリの深さを定義します。depth が指定されない場合、デフォルトは 20 です。一般的な depth 値は、次のとおりです。

0 = 開始 URL だけを取得
1、2、3、...= 開始 URL とそれが参照するファイルを取得する
-1 = 無限、または深さの制限なし

depth は、Web サイトの階層または FTP サーバのディレクトリの階層として定義します。0 は開始 URL です。

prefix

prefix 属性は任意であり、<server> タグと prefix 属性を結合して、フル プレフィクスを作成します。このフル プレフィクスと一致する URL のコンテンツのみが取得されます。次に例を示します。

<server name="xx"> <host name="www.cisco.com" proto="https" port=433 /> </server>
 

<crawler> タグ内は、次のとおりです。

prefix="marketing/eng/"
 

フル プレフィクスは「https://www.cisco.com:433/marketing/eng/」となります。このフル プレフィクスと一致する URL だけがクロールされます。

プレフィクスが省略された場合、クローラーはデフォルトのフル プレフィクス(サーバからの URL のホスト名の部分)を調べます。この例では、デフォルトのフル プレフィクスは「https://www.cisco.com:433」です。

accept

accept 属性は任意であり、正規表現を使用して、プレフィクスの一致に加えて、クロール対象の受け入れ可能な URL を定義します。たとえば、accept="stock" は、URL がプレフィクスと一致すること、およびストリング「stock」が含まれていること、の 2 つの条件を満たす URL だけが検索されることを意味します。(正規表現の使用方法の詳細については、一般的な正規表現の作成を参照してください)。

accept 属性と prefix 属性には、次のような 2 つの重要な違いがあります。

prefix 属性はストリングの完全一致を使用しますが、 accept 属性は正規表現を使用します。

prefix 属性は URL に適用され、その URL のすべてのリンクとサブディレクトリが含まれます。一方、 accept 属性を使用すると、URL の評価、およびそのリンクとサブディレクトリの評価を別々に行えます。

reject

reject 属性は任意であり、正規表現を使用して、URL が正規表現と一致する場合にその URL を拒否します。reject 正規表現は、プレフィクスと URL が一致するかどうかのチェックのあとにチェックされます。URL がプレフィクスと一致しない場合、ただちに拒否されます。URL がプレフィクスおよび reject パラメータと一致する場合、特定の拒否制約条件によって拒否されます(正規表現の使用方法の詳細については、一般的な正規表現の作成を参照してください)。

reject 属性と prefix 属性には、次のような 2 つの重要な違いがあります。

prefix 属性はストリングの完全一致を使用しますが、 reject 属性は正規表現を使用します。

prefix 属性は URL に適用され、その URL のすべてのリンクとサブディレクトリが含まれます。一方、 reject 属性を使用すると、URL、およびそのリンクとサブディレクトリの評価を別々に行えます。

max-number

max-number 属性は任意であり、取得可能なクローラー オブジェクトの最大数を指定します。

maxTotalSizeInB/KB/MB

maxTotalSizeInB/KB/MB 属性は任意であり、このクローラー ジョブが取得できる最大の合計コンテンツ サイズを、バイト単位、キロバイト単位、またはメガバイト単位で指定します。このサイズ属性は、メガバイト数(MB)、キロバイト数(KB)、またはバイト数(B)で表すことができます。

この属性は、 max-size-in-B/KB/MB 属性に代わるものです。max-size-in-B/KB/MB は、下位互換性を確保するためだけにサポートされています。

srcPrefix

srcPrefix 属性は任意であり、相対 CDS ネットワーク URL を作成するために cdnPrefix 属性と一緒に使用する必要があります。 srcPrefix 属性が指定されない場合、または相対ソース URL が srcPrefix 属性と一致しない場合、相対 CDS ネットワーク URL は、相対ソース URL と結合された cdnPrefix 値です。たとえば、同じソース URL プレフィクス「acme/pubs/docs/online/Design/」を持つコンテンツ オブジェクトがあり、このプレフィクスを単純な「online/」で置き換えたい場合は、各属性を srcPrefix="acme/pubs/docs/online/Design/"、cdnPrefix="online/" と指定します。

cdnPrefix

cdnPrefix 属性は任意であり、 srcPrefix 属性と一緒に使用する必要があります。

wmtRequireAuth

wmtRequireAuth 属性は任意であり、指定されたコンテンツを再生する前にユーザを認証する必要があるかどうかを決定します。値が true である場合、ユーザに指定されたコンテンツを再生するには認証が必要となり、Service Engine はクレデンシャルを検査するためにオリジン サーバと通信します。クレデンシャルの検査に合格すると、コンテンツは Service Engine から再生されます。この属性が省略された場合、発見的解決法で値が決定されます。つまり、指定されたコンテンツがユーザ名とパスワードを使用して取得される場合、wmtRequireAuth は true に設定され、それ以外の場合は false に設定されます。FTP の場合、ユーザ名が匿名であれば、wmtRequireAuth は false に設定されます。


wmtRequireAuth が true である場合、このデリバリ サービスの Content Origin ページの Origin Server フィールドに、ユーザを認証できるサーバを設定する必要があります。ユーザがコンテンツを再生したい場合には、この Origin Server フィールドに指定されたサーバが認証のために調べられます。


externalPrefixes

externalPrefixes 属性は任意であり、複数のプロトコルまたは複数の Web サイトをクロールするよう、クロール ジョブにプレフィクスを追加指定します。プレフィクスはパイプ(|)で区切ります。

externalServers

externalServers 属性は任意であり、ユーザ アカウントがホストごとに異なる複数のホストのクロール ジョブを行う場合に使用できます。この属性は、適切な認証情報を持つ <host> タグの参照に使用できます。

keepExpiredContent

keepExpiredContent 属性は、HTTP または HTTPS クロール時に、有効期限の切れたコンテンツを取得する場合に使用します。この属性が true に設定されている場合は、期限の切れたコンテンツが取得されます。この属性が false に設定されている場合は、期限の切れたコンテンツは廃棄されます。この属性が指定されていない場合、デフォルトは false です。

keepFolder

keepFolder 属性はフォルダを取得するために使用します(要求 URL がスラッシュ [/] で終了しているとフォルダを意味します)。この属性が false に設定されている場合、フォルダ URL は取得されません。

keepNoCacheContent

keepNoCacheContent 属性は、HTTP または HTTPS クロール時に、通常はキャッシュされないコンテンツを取得する場合に使用します。この属性が true に設定されている場合、コンテンツをキャッシュしないことを示す HTTP キャッシュ制御ヘッダーがコンテンツに含まれていても、取得機能はそのコンテンツを取得します。この属性が指定されていない場合、デフォルトは false です。

KeepQueryUrl

keepQueryUrl 属性は、URL ストリング 内に「?」が含まれている URL を取得するために使用します。この属性が true に設定されている場合、クロール ジョブの HTML 解析時、「?」の付いた URL がマニフェスト ファイルに規定される他のクロール基準と合致すれば、その URL が取得されます。

この属性は、データベースからコンテンツを取得する際に便利です。たとえば、「?」のあとの URL ストリング部分で複数のファイルを区別している場合などです。この属性が設定されていない場合、「?」のあとの URL ストリング部分は廃棄されます。「?」の前の URL ストリング部分が同じ URL が複数あると、それらの URL は重複しているとみなされ、最後に表れる「重複」URL だけが取得されます。

reportBrokenLinks

reportBrokenLinks 属性は、HTML Web ページ上の取得できないリンクを報告するために使用します。この属性が true に設定されている場合、Web サイトのクロール時に検出されたリンク切れは、すべてエラーとして報告されます。この属性は Web サイトのクロールにのみ適用され、インデックスのクロールには適用されません。デフォルトは false です。リンク切れはエラーとしては報告されません。

<host> タグの属性のところで説明した次の属性は、<crawler> タグでも指定できます。

disableBasicAuth

noProxy

ntlmUserDomain

password

port

proto

proxyServer

sslAuthType

user

uuencoded

<item> タグの属性のところで説明した次の属性は、<crawler> タグでも指定できます。

alternateUrl

authCookie

enableCookies

expires

failRetryInterval

ignoreOriginPort

ignoreQueryString

playServer

prefetch

priority

serveStartTime

serveStopTime

server

ttl

type

userDomainName

サブ要素

<matchRule></matchRule>

<schedule><repeat>

<schedule><repeat> サブ要素の説明については、「item」を参照してください。

<server name="cisco">
<host name="http://www.cisco.com/jobs/" />
</server>
<crawler
server="cisco"
start-url="eng/index.html"
depth="10"
prefix="eng/"
reject="\.pl"
maxTotalSizeIn-MB="200"
/>

item-group

<item-group> </item-group> タグ セットは、共有属性を 1 つのタグの下に置いて、そのグループ内のすべての <item> タグと <crawler> タグがそれらの属性を共有できるようにするために使用します。属性が共有される場合、グループ全体の制御を行えるように <item-group> タグ レベルで属性を定義することも、<item> タグまたは <crawler> タグの単位で属性を定義することもできます。たとえば、すべての <item> タグが同じ server 属性と ttl 属性を使用している場合、これらの <item> タグの上に <item-group> タグを作成し、 server 属性と ttl 属性をその <item-group> タグに入れることができます。

共有属性を利用すると、共有属性を持つ <item> タグを集約することができるので、多数の <item> タグが含まれるマニフェスト ファイルをより効率のよいものにできます。<item-group> タグと <item> タグの両方に同じ属性値が存在する場合は、<item> タグの値が <item-group> タグの値より優先します。

<item-group> タグは <CdnManifest> タグ セットで囲み、1 つまたは複数の <item> タグまたは <crawler> タグを含める必要があります。

属性

属性値が <item-group> タグ レベルでだけ指定されている場合、その属性値は <item> タグ内の内部要素により継承されます。属性値がクローラー ジョブで指定されている場合、その属性は継承されたものか独自のものかかかわらず、クローラー ジョブで取得されたコンテンツに伝播されます。

次の属性は、多くの <item> タグと <crawler> タグの間で共有できるので、<item-group> レベルのタグに使用することができます。次の属性の詳しい説明については、「item」を参照してください。

alternateUrl

cdn-url

enableCookies

expires

failRetryInterval

host

ignoreOriginPort

ignoreQueryString

playServer

prefetch

wmtRequireAuth

serveStartTime

serveStopTime

server

src

priority

ttl

type

userDomainName

< host > タグの属性のところで説明した次の属性は、<item-group> タグでも指定できます。

disableBasicAuth

noProxy

ntlmUserDomain

password

port

proto

proxyServer

sslAuthType

user

uuencoded

さらに、次の 2 つの属性を <item-group> タグに入れることができます。次の 2 つの属性の詳しい説明については、「crawler」を参照してください。

srcPrefix

cdnPrefix

この 2 つの属性は、複数コンテンツ オブジェクトに対応して、 src-url (コンテンツ取得 URL)のプレフィクスを cdn-url (パブリッシング URL)のプレフィクスに変換します。これらのコンテンツ オブジェクトは、複数の <item> タグを使用して暗黙的に指定される場合と、クローラー ジョブを介して取得される場合があります。

この 2 つの属性は、<crawler> タグでも指定できます。個々の <crawler> ジョブに srcPrefix 属性と cdnPrefix 属性を明示的に指定した場合、<crawler> タグ レベルの指定が <item-group> タグ レベルの指定より優先します。個々の <crawler> ジョブにこれらの属性を指定しなかった場合、<crawler> ジョブは <item-group> タグ レベルの指定を継承します。

srcPrefix cdnPrefix 属性は、次の規則により相対 CDS ネットワーク URL を生成します。

<item> タグ内に cdn-url 属性が存在する場合、相対 CDS ネットワーク URL は cdnPrefix 属性と cdn-url 属性の両方を結合したものです。たとえば、 cdnPrefix ="eng/spec" と cdn-url ="e/f.html" の場合、URL 内の相対パスは「eng/spec/e/f.html」です。

<item> タグ内に srcPrefix 属性が存在しない場合、相対 CDS ネットワーク URL は cdnPrefix 属性に相対ソース URL を結合したものです。

相対ソース URL のプレフィクスが srcPrefix 属性と一致しない場合、相対 CDS ネットワーク URL は cdnPrefix 属性にソース相対 URL を結合したものです。

相対 CDS ネットワーク URL を生成するには、一致したプレフィクスを相対ソース URL から削除し、 cdnPrefix 属性で置き換えます。

次の例では、<item> の相対 CDS ネットワーク URL は「acme/default.htm」です。

<item-group cdnPrefix="acme/" >
<item src="design/index.html" cdn-url="default.html" />
</item-group>
 

次の例では、 srcPrefix 属性(たとえば「design/plan/」)を持つコンテンツ オブジェクトの相対 CDS ネットワーク URL は、「acme/」に、「desin/plan/」が削除された相対ソース URL を結合したものです。「design/plan/」と一致しないプレフィクス属性を持つ他のコンテンツ オブジェクトの場合は、「acme/」にオリジナルの相対ソ-ス URL を結合したものです。

<crawler
start-url="design/plan/index.html"
depth="-1"
srcPrefix="design/plan/"
cdnPrefix="acme/" />

サブ要素

<crawler></crawler>

<item-group/>

<item></item>

<schedule><repeat>

<schedule><repeat> サブ要素の説明については、「item」を参照してください。

<!--grouped content items-->
<item-group server="origin-web-server" type="prepos" ttl="300" cdnPrefix="unicorn/" >
<item cdn-url="newHQpresentation.rm" src="newHQpresentation.rm" />
<item cdn-url="animatedlogo.mpg" src="animlogo.mpg" />
<item cdn-url="companytheme.mp3" src="cotheme.mp3" />
<item cdn-url="newHQlayout.avi" src="newHQ.mov" />
</item-group>

matchRule

<matchRule> </matchRule> タグ セットは任意であり、クローラー ジョブの追加フィルタ規則を追加定義します。このタグ セットは <crawler> タスクだけに影響を及ぼします。また、単一 <item> タグでは使用されません。<crawler></crawler> タグ セットで定義されるクローラー パラメータでは、主にクロール検索の範囲を決定します。コンテンツ オブジェクトが、クローラー パラメータによって指定された基準と一致しない場合、そのオブジェクトと子オブジェクトはどちらも検索されません。

これに対して、<matchRule> タグは、検索の範囲に関係なく、コンテンツ オブジェクトを取得するかどうかだけを決定します。Web ページが、<matchRule> 機能を使用しないクローラー パラメータと一致する場合は、そのコンテンツ オブジェクトが取得されない場合でも子オブジェクトは検索されます。

次の例では、<matchRule> タグを使用するクローラー ジョブを示します。Web サイト全体が検索されますが、.jpg ファイル拡張子を持つ 50 KB を超えるファイルだけが取得されます。

<crawler start-url="index.html" depth="-1" >
<matchRule>
<match minFileSizeIn-KB="50" extension="jpg" />
</matchRule>
</crawler>
 

<matchRule> 要素を <item-group> タグ内でネストすると、そのグループに含まれている <crawler> タグに対してグループ全体のフィルタ規則を定義できます。matchRule 要素を特定の <crawler> ジョブのサブ要素にすることもできます。<crawler> タグと <item-group> タグの両方が存在する場合、crawler タグ レベルの設定が item-group タグ レベルの設定に優先します。

個々の <crawler> ジョブにローカルに基準を定義した場合、その <crawler> ジョブの既存のすべてのグループ レベルの基準は完全に破棄されます。つまり、タグの一致規則が A に設定されていて、<crawler>タグで別の一致規則が B に設定されている場合、<crawler>タグでは A と B の組み合わせでなく、B だけが使用されます。<item-group>タグごとに最大 1 つの<matchRule>、また<crawler>タグごとに最大 1 つの<matchRule>タグしか定義できません。

属性

なし

サブ要素

1 つ以上の <match> タグ

match

<match> </match> タグは任意であり、CDS ソフトウェアによりコンテンツ オブジェクトが取得される前の取得基準を指定します。1 つの <match> タグ内にあるどの属性も、他の属性とブール AND 関係(論理積)がとられます。

<matchRule> タグ内には複数の <match> タグを指定できます。<match> タグは、他の <match> タグとブール OR 関係(論理和)がとられます。<matchRule> ごとに少なくとも 1 つの <match> タグを指定する必要があります。

属性

mime-type

mime-type 属性は、MIME タイプを指定します。

extension

extension 属性は、ファイル拡張子を指定します。

time-before

time-before 属性では、コンテンツをダウンロードする時間を、絶対時間(yyyy-mm-dd hh:mm:ss より前に変更される)、または現在の時刻を基準にした相対時間(ddd:hh:ss 内で変更される)の両方を指定できます。時間パラメータは GMT 時間帯で表す必要があります(GMT からのオフセットについては、マニフェスト ファイルの時間帯テーブルを参照してください)。

time-after

time-after 属性では、コンテンツをダウンロードする時間を、絶対時間(yyyy-mm-dd hh:mm:ss よりあとに変更される)、または現在の時刻を基準にした相対時間(ddd:hh:ss 内で変更される)の両方を指定できます。時間パラメータは GMT 時間帯で表す必要があります(GMT からのオフセットについては、マニフェスト ファイルの時間帯テーブルを参照してください)。


) 相対時間は現在時間に基づいて計算されます。サーバのクロックと Service Engine のクロックを同期させて、相対時間の計算が正確になるようにすることを推奨します。


minFileSizeInB/KB/MB

minFileSizeInB/KB/MB 属性は、取得されるコンテンツのサイズが、ここで示すバイト数、キロバイト数、またはメガバイト数より大きくなければならないことを示します。このサイズ属性は、バイト数(B)、キロバイト数(KB)、またはメガバイト数(MB)で表すことができます。

minFileSizeInB/KB/MB 属性は、 size-min-in-B/KB/MB 属性に代わるものです。size-min-in-B/KB/MB は、下位互換性を確保するためだけにサポートされています。

maxFileSizeInB/KB/MB

maxFileSizeInB/KB/MB 属性は、取得されるコンテンツのサイズが、ここで示すバイト数、キロバイト数、またはメガバイト数より小さくなければならないことを示します。この属性は、バイト数(B)、キロバイト数(KB)、またはメガバイト数(MB)で表すことができます。

maxFileSizeInB/KB/MB 属性は、 size-max-in-B/KB/MB 属性に代わるものです。size-max-in-B/KB/MB は、下位互換性を確保するためだけにサポートされています。

prefix

prefix 属性は任意であり、クロール ジョブ時に除外する Web サイトの一致規則としてプレフィクスを指定します。

url-pattern

url-pattern 属性は任意であり、特定の URL を除外する一致規則として正規表現を指定します。

サブ要素

なし

<! - - crawling item group -- >
<item-group server=”origin-server” type=”prepos”>
<matchRule>
<match time-before=”2000-05-05 12:0:0”/>
</matchRule>
<crawler start-url=”eng/index.html” depth=”-1”/>
<crawler start-url=”hr/index.html” depth=”3”>
<matchRule>
<match minFileSizeIn-KB=”1” extension=”xxx”/>
</matchRule>
</crawler>
</item-group>
 

過去 90 日以内に作成または変更されたコンテンツをダウンロードするには、相対時間形式を使用します。次に例を示します。

<match time-after=”90:00:00”/>
 

過去 2 週間以内に変更されていないコンテンツをダウンロードするには、相対時間形式を使用します。次に例を示します。

<match time-before=”14:00:00”/>
 

2003 年 1 月 20 日午後 10 時 30 分よりあとに変更されたコンテンツをダウンロードするには、絶対時間を使用します。次に例を示します。

<match time-after=”2003-01-30 10:30:00”/>

contains

<contains /> タグは任意であり、現在記述されているコンテンツ項目内に組み込まれているコンテンツ オブジェクトを識別します。たとえば、<contains /> リンクを使用する項目に対する Synchronized Multimedia Integration Language(SMIL)ファイル要求のコンポーネントは、サービス エンジン内に従属コンテンツ オブジェクトが存在することを CDS ソフトウェアが確認したあとでないと受け入れられません。

<contains /> タグは <item> </item> タグ セットで囲む必要があります。

<contains /> タグは、.asf や .rp などのビデオ ファイルの組み込みファイルを含めるのに使用します。CDS ソフトウェアは、含まれているすべての項目が存在しないかぎり、この項目を配信しません。

属性

cdn-url 属性は必須であり、組み込みコンテンツのいずれかの相対 CDS ネットワーク URL です。

サブ要素

なし

<item src=”house/img08.jpb” cdn-url=”img08.jpg” />
<item src=”house/img09.jpb” cdn-url=”img09.jpg” />
<item cdn-url="house.rp"src="house/house.rp">
<contains cdn-url="img08.jpg"/>
<contains cdn-url="img09.jpg"/>
</item>

XML スキーマ

マニフェスト ファイルの場合、XML スキーマは、マニフェスト ファイルのカスタム マークアップ言語および所定の XML ドキュメントの構造を定義します。XML スキーマでは、ドキュメントで使用できるタグまたは要素、タグに含むことができる属性、およびそれらの配置を指定します。

マニフェスト XML スキーマ

XSD は、XML スキーマのコンポーネントを処理するための Application Programming Interface(API; アプリケーション プログラミング インターフェイス)を提供するライブラリです。

次に、マニフェスト XML スキーマ(CdnManfest.xsd)の XML コードを示します。

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="PlayServerTable.xsd"/>
<xs:element name="CdnManifest">
<xs:complexType>
<xs:sequence>
<xs:element ref="playServerTable" minOccurs="0" maxOccurs="1"/>
<xs:element ref="options" minOccurs="0" maxOccurs="1"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="proxyServer" maxOccurs="unbounded"/>
<xs:element ref="server" maxOccurs="unbounded"/>
<xs:element ref="item-group" maxOccurs="unbounded"/>
<xs:element ref="item" maxOccurs="unbounded"/>
<xs:element ref="crawler" maxOccurs="unbounded"/>
</xs:choice>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="item-group" maxOccurs="unbounded"/>
<xs:element ref="item" maxOccurs="unbounded"/>
<xs:element ref="crawler" maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
 
<xs:element name="options">
<xs:complexType>
<xs:sequence>
<xs:element ref="schedule" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="timeZone" type="xs:string" use="optional"/>
<xs:attribute name="notFoundUrl" type="xs:string" use="optional"/>
<xs:attribute name="alternateUrl" type="xs:string" use="optional"/>
<xs:attribute name="wmtRequireAuth" type="xs:boolean" use="optional"/>
<xs:attribute name="ignoreQueryString" type="xs:boolean" use="optional"/>
<xs:attribute name="ignoreOriginPort" type="xs:boolean" use="optional"/>
<xs:attribute name="enableCookies" type="xs:boolean" use="optional" />
<xs:attribute name="ttl" type="xs:int" use="optional"/>
<xs:attribute name="failRetryInterval" type="xs:unsignedInt" use="optional"/>
<xs:attribute name="prefetch" type="xs:string" use="optional"/>
<xs:attribute name="type" use="optional" >
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="prepos"/>
<xs:enumeration value="wmt-live"/>
<xs:enumeration value="cache"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="manifest-id" type="xs:string" use="optional"/>
<xs:attribute name="clearlog" type="xs:boolean" use="optional" />
<xs:attribute name="rd" type="xs:string" use="optional"/>
<xs:attribute name="prepos-tag" type="xs:string" use="optional"/>
<xs:attribute name="live-tag" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
 
<xs:element name="server">
<xs:complexType>
<xs:sequence>
<xs:element ref="host" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
 
<xs:attributeGroup name = "hostAttr">
<xs:attribute name="proxyServer" type="xs:string" use="optional"/>
<xs:attribute name="noProxy" type="xs:boolean" use="optional"/>
<xs:attribute name="proto" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="http"/>
<xs:enumeration value="https"/>
<xs:enumeration value="ftp"/>
<xs:enumeration value="rtsp"/>
<xs:enumeration value="file"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="port" type="xs:unsignedShort" use="optional"/>
<xs:attribute name="user" type="xs:string" use="optional"/>
<xs:attribute name="password" type="xs:string" use="optional"/>
<xs:attribute name="ntlmUserDomain" type="xs:string" use="optional"/>
<xs:attribute name="userDomainName" type="xs:string" use="optional"/>
<xs:attribute name="disableBasicAuth" type="xs:boolean" use="optional"/>
<xs:attribute name="uuencoded" type="xs:boolean" use="optional"/>
<xs:attribute name="sslAuthType" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="weak"/>
<xs:enumeration value="strong"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
 
<xs:element name="host">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attributeGroup ref="hostAttr"/>
</xs:complexType>
</xs:element>
 
<xs:element name="proxyServer">
<xs:complexType>
<xs:attribute name="serverName" type="xs:string" use="required"/>
<xs:attribute name="host" type="xs:string" use="optional"/>
<xs:attribute name="port" type="xs:unsignedShort" use="optional"/>
<xs:attribute name="user" type="xs:string" use="optional"/>
<xs:attribute name="password" type="xs:string" use="optional"/>
<xs:attribute name="ntlmUserDomain" type="xs:string" use="optional"/>
<xs:attribute name="uuencoded" type="xs:string" use="optional" />
<xs:attribute name="disableBasicAuth" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
 
<xs:attributeGroup name = "contentAttr">
<xs:attribute name="server" type="xs:string" use="optional"/>
<xs:attribute name="playServer" type="xs:string" use="optional"/>
<xs:attribute name="type" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="prepos"/>
<xs:enumeration value="wmt-live"/>
<xs:enumeration value="cache"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="enableCookies" type="xs:boolean" use="optional" />
<xs:attribute name="wmtRequireAuth" type="xs:boolean" use="optional"/>
<xs:attribute name="ignoreQueryString" type="xs:boolean" use="optional"/>
<xs:attribute name="ignoreOriginPort" type="xs:boolean" use="optional"/>
<xs:attribute name="notFoundUrl" type="xs:string" use="optional"/>
<xs:attribute name="alternateUrl" type="xs:string" use="optional"/>
<xs:attribute name="ttl" type="xs:int" use="optional"/>
<xs:attribute name="failRetryInterval" type="xs:unsignedInt" use="optional"/>
<xs:attribute name="priority" type="xs:unsignedInt" use="optional"/>
<xs:attribute name="prefetch" type="xs:string" use="optional"/>
<xs:attribute name="expires" type="xs:string" use="optional"/>
<xs:attribute name="serve" type="xs:string" use="optional"/>
<xs:attribute name="serveStartTime" type="xs:string" use="optional"/>
<xs:attribute name="serveStopTime" type="xs:string" use="optional"/>
<xs:attribute name="_isDefault" type="xs:boolean" use="optional"/>
</xs:attributeGroup>
 
<xs:attributeGroup name = "prefixAttr">
<xs:attribute name="cdnPrefix" type="xs:string" use="optional"/>
<xs:attribute name="srcPrefix" type="xs:string" use="optional"/>
</xs:attributeGroup>
 
<xs:element name="item-group">
<xs:complexType>
<xs:sequence>
<xs:element ref="matchRule" minOccurs="0" maxOccurs="1"/>
<xs:element ref="schedule" minOccurs="0" maxOccurs="1"/>
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element ref="item-group" maxOccurs="unbounded"/>
<xs:element ref="item" maxOccurs="unbounded"/>
<xs:element ref="crawler" maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
<xs:attributeGroup ref="contentAttr"/>
<xs:attributeGroup ref="prefixAttr"/>
<xs:attribute name="host" type="xs:string" use="optional"/>
<xs:attributeGroup ref="hostAttr"/>
</xs:complexType>
</xs:element>
 
<xs:element name="item">
<xs:complexType>
<xs:sequence>
<xs:element ref="contains" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="schedule" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="src" type="xs:string" use="required"/>
<xs:attribute name="cdn-url" type="xs:string" use="optional"/>
<xs:attributeGroup ref="contentAttr"/>
<xs:attribute name="host" type="xs:string" use="optional"/>
<xs:attribute name="authCookie" type="xs:boolean" use="optional" />
<xs:attributeGroup ref="hostAttr"/>
</xs:complexType>
</xs:element>
 
<xs:element name="crawler">
<xs:complexType>
<xs:all>
<xs:element ref="matchRule" minOccurs="0" maxOccurs="1"/>
<xs:element ref="schedule" minOccurs="0" maxOccurs="1"/>
</xs:all>
<xs:attribute name="start-url" type="xs:string" use="required"/>
<xs:attribute name="externalPrefixes" type="xs:string" use="optional"/>
<xs:attribute name="externalServers" type="xs:string" use="optional"/>
<xs:attribute name="keepFolder" type="xs:boolean" use="optional" />
<xs:attribute name="keepQueryUrl" type="xs:boolean" use="optional" />
<xs:attribute name="keepNoCacheContent" type="xs:boolean" use="optional" />
<xs:attribute name="keepExpiredContent" type="xs:boolean" use="optional" />
<xs:attribute name="depth" type="xs:short" use="optional"/>
<xs:attribute name="prefix" type="xs:string" use="optional"/>
<xs:attribute name="accept" type="xs:string" use="optional"/>
<xs:attribute name="reject" type="xs:string" use="optional"/>
<xs:attribute name="max-number" type="xs:unsignedInt" use="optional"/>
<xs:attribute name="reportBrokenLinks" type="xs:boolean" use="optional" />
<xs:attribute name="maxTotalSizeIn-B" type="xs:unsignedInt" use="optional"/>
<xs:attribute name="maxTotalSizeIn-KB" type="xs:unsignedInt" use="optional"/>
<xs:attribute name="maxTotalSizeIn-MB" type="xs:unsignedInt" use="optional"/>
<xs:attribute name="maxTotalSizeInB" type="xs:unsignedInt" use="optional"/>
<xs:attribute name="maxTotalSizeInKB" type="xs:unsignedInt" use="optional"/>
<xs:attribute name="maxTotalSizeInMB" type="xs:unsignedInt" use="optional"/>
<xs:attributeGroup ref="contentAttr"/>
<xs:attributeGroup ref="prefixAttr"/>
<xs:attribute name="host" type="xs:string" use="optional"/>
<xs:attribute name="authCookie" type="xs:boolean" use="optional" />
<xs:attributeGroup ref="hostAttr"/>
</xs:complexType>
</xs:element>
 
<xs:element name="contains">
<xs:complexType>
<xs:attribute name="cdn-url" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
 
<xs:element name="matchRule">
<xs:complexType>
<xs:sequence>
<xs:element ref="match" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
 
<xs:element name="match">
<xs:complexType>
<xs:attribute name="mime-type" type="xs:string" use="optional"/>
<xs:attribute name="time-before" type="xs:string" use="optional"/>
<xs:attribute name="time-after" type="xs:string" use="optional"/>
<xs:attribute name="minFileSizeIn-B" type="xs:int" use="optional"/>
<xs:attribute name="maxFileSizeIn-B" type="xs:int" use="optional"/>
<xs:attribute name="minFileSizeIn-KB" type="xs:int" use="optional"/>
<xs:attribute name="maxFileSizeIn-KB" type="xs:int" use="optional"/>
<xs:attribute name="minFileSizeIn-MB" type="xs:int" use="optional"/>
<xs:attribute name="maxFileSizeIn-MB" type="xs:int" use="optional"/>
<xs:attribute name="minFileSizeInB" type="xs:int" use="optional"/>
<xs:attribute name="maxFileSizeInB" type="xs:int" use="optional"/>
<xs:attribute name="minFileSizeInKB" type="xs:int" use="optional"/>
<xs:attribute name="maxFileSizeInKB" type="xs:int" use="optional"/>
<xs:attribute name="minFileSizeInMB" type="xs:int" use="optional"/>
<xs:attribute name="maxFileSizeInMB" type="xs:int" use="optional"/>
<xs:attribute name="extension" type="xs:string" use="optional"/>
<xs:attribute name="prefix" type="xs:string" use="optional"/>
<xs:attribute name="url-pattern" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
 
 
<xs:element name="schedule">
<xs:complexType>
<xs:sequence>
<xs:element ref="repeat" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
 
</xs:element>
 
<xs:element name="repeat">
<xs:complexType>
<xs:attribute name="time" type="xs:string" use="required"/>
<xs:attribute name="start" type="xs:string" use="optional"/>
<xs:attribute name="end" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
</xs:schema>
 

PlayServerTable XML スキーマ

次の XML コードは、CdnManfiest.xsd の PlayServerTable スキーマ(playServerTable.xsd)を定義します。

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="playServerTable">
<xs:complexType>
<xs:sequence>
<xs:element ref="playServer" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="playServer">
<xs:complexType>
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element ref="contentType"/>
<xs:element ref="extension"/>
</xs:choice>
<xs:attribute name="name" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="wmt"/>
<xs:enumeration value="http"/>
<xs:enumeration value="qtss"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="contentType">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="extension">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>

デフォルトの PlayServerTable スキーマ

次の XML コードは、デフォルトの PlayServerTable を定義します。

<?xml version="1.0"?>
 
<playServerTable xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation = "PlayServerTable.xsd">
 
<!-- playServer http and https can always play all prepositon
contents unless users use customized <playServerTable>
or "playServer" attribute in the manifest file
-->
 
<playServer name="qtss">
<contentType name="video/quicktime" />
<extension name="mov" />
<extension name="qt" />
<extension name="mp4" />
<extension name="3gp" />
<extension name="3g2" />
 
<!-- extension avi could go here, but is also supported by wmt -->
</playServer>
 
<playServer name="wmt">
<!-- MIME types taken from
http://msdn.microsoft.com/workshop/imedia/windowsmedia/server/mime.asp
-->
<contentType name="video/x-ms-asf" />
<contentType name="audio/x-ms-wma" />
<contentType name="video/x-ms-wmv" />
<contentType name="video/x-ms-wm" />
<contentType name="application/x-ms-wmz" />
<contentType name="application/x-ms-wmd" />
 
<extension name="wma" /> <!-- audio content -->
<extension name="wmv" /> <!-- audio/video content -->
<extension name="asf" /> <!-- audio/video content (legacy) -->
<extension name="wm" /> <!-- reserved for future use -->
 
<!-- extension avi could go here, but is also supported by qtss -->
</playServer>
 
</playServerTable>

マニフェスト ファイルの時間帯テーブル

Greenwich Mean Time(GMT; グリニッジ標準時)を現地時間に変換するには、標準時間と夏時間の両方について、現地時間との時間差を知る必要があります。 表B-6 から 表B-21 に、マニフェスト ファイルでサポートされている時間帯を一覧表示します。時間帯を表記する形式は、次のとおりです。

<zonename> :[ + | - :]hh:mm per line

<zonename> は、時間帯の名前または標準時間帯の略語( 表B-6 を参照)です。コロン(":")の前後にスペースはありません。また、「[+|-:]hh:mm」は、GMT からのオフセット(時間と分)です。GMT オフセットのデフォルトは「+」です。

 

表B-6 標準時間帯と GMT オフセット

時間帯:GMT からのオフセット
時間帯:GMT からのオフセット
時間帯:GMT からのオフセット

ACT:+:09:30

Etc/GMT+7:-:07:00

HST:-:10:00

ADT:-:03:00

Etc/GMT+8:-:08:00

IET:-:05:00

AET:+:10:00

Etc/GMT+9:-:09:00

IST:+:05:30

AGT:-:03:00

Etc/GMT-0:00:00

JST:+:09:00

ART:+:02:00

Etc/GMT-10:+:10:00

MDT:-:06:00

AST:-:09:00

Etc/GMT-11:+:11:00

MET:+:01:00

BET:-:03:00

Etc/GMT-12:+:12:00

MIT:-:11:00

BST:+:06:00

Etc/GMT-13:+:13:00

MST7MDT:-:07:00

CAT:+:02:00

Etc/GMT-14:+:14:00

MST:-:07:00

CDT:-:05:00

Etc/GMT-1:+:01:00

NET:+:04:00

CET:+:01:00

Etc/GMT-2:+:02:00

NST:+:12:00

CNT:-:03:30

Etc/GMT-3:+:03:00

NZ-CHAT:+:12:45

CST6CDT:-:06:00

Etc/GMT-4:+:04:00

NZ:+:12:00

CST:-:06:00

Etc/GMT-5:+:05:00

Navajo:-:07:00

CTT:+:08:00

Etc/GMT-6:+:06:00

PDT:-:07:00

EAT:+:03:00

Etc/GMT-7:+:07:00

PLT:+:05:00

ECT:+:01:00

Etc/GMT-8:+:08:00

PNT:-:07:00

EDT:-:04:00

Etc/GMT-9:+:09:00

PRC:+:08:00

EET:+:02:00

Etc/GMT0:00:00

PRT:-:04:00

EST5EDT:-:05:00

Etc/GMT:00:00

PST8PDT:-:08:00

EST:-:05:00

Etc/Greenwich:00:00

PST:-:08:00

Etc/GMT+0:00:00

Etc/UCT:00:00

ROK:+:09:00

Etc/GMT+10:-:10:00

Etc/UTC:00:00

SST:+:11:00

Etc/GMT+11:-:11:00

Etc/Universal:00:00

UCT:00:00

Etc/GMT+12:-:12:00

Etc/Zulu:00:00

UTC:00:00

Etc/GMT+1:-:01:00

GB-Eire:00:00

Universal:00:00

Etc/GMT+2:-:02:00

GB:00:00

VST:+:07:00

Etc/GMT+3:-:03:00

GMT0:00:00

W-SU:+:03:00

Etc/GMT+4:-:04:00

GMT:00:00

WET:00:00

Etc/GMT+5:-:05:00

Greenwich:00:00

Zulu:00:00

Etc/GMT+6:-:06:00

HDT:-:09:00

--

 

表B-7 アフリカの GMT オフセット

時間帯:GMT からのオフセット
時間帯:GMT からのオフセット
時間帯:GMT からのオフセット

Africa/Abidjan:00:00

Africa/Djibouti:+:03:00

Africa/Maputo:+:02:00

Africa/Accra:00:00

Africa/Douala:+:01:00

Africa/Maseru:+:02:00

Africa/Addis_Ababa:+:03:00

Africa/El_Aaiun:00:00

Africa/Mbabane:+:02:00

Africa/Algiers:+:01:00

Africa/Freetown:00:00

Africa/Mogadishu:+:03:00

Africa/Asmera:+:03:00

Africa/Gaborone:+:02:00

Africa/Monrovia:00:00

Africa/Bamako:00:00

Africa/Harare:+:02:00

Africa/Nairobi:+:03:00

Africa/Bangui:+:01:00

Africa/Johannesburg:+:02:00

Africa/Ndjamena:+:01:00

Africa/Banjul:00:00

Africa/Kampala:+:03:00

Africa/Niamey:+:01:00

Africa/Bissau:00:00

Africa/Khartoum:+:03:00

Africa/Nouakchott:00:00

Africa/Blantyre:+:02:00

Africa/Kigali:+:02:00

Africa/Ouagadougou:00:00

Africa/Brazzaville:+:01:00

Africa/Kinshasa:+:01:00

Africa/Porto-Novo:+:01:00

Africa/Bujumbura:+:02:00

Africa/Lagos:+:01:00

Africa/Sao_Tome:00:00

Africa/Cairo:+:02:00

Africa/Libreville:+:01:00

Africa/Timbuktu:00:00

Africa/Casablanca:00:00

Africa/Lome:00:00

Africa/Tripoli:+:02:00

Africa/Ceuta:+:01:00

Africa/Luanda:+:01:00

Africa/Tunis:+:01:00

Africa/Conakry:00:00

Africa/Lubumbashi:+:02:00

Africa/Windhoek:+:01:00

Africa/Dakar:00:00

Africa/Lusaka:+:02:00

--

Africa/Dar_es_Salaam:+:03:00

Africa/Malabo:+:01:00

--

 

表B-8 アメリカ大陸の GMT オフセット

時間帯:GMT からのオフセット
時間帯:GMT からのオフセット
時間帯:GMT からのオフセット

America/Adak:-:10:00

America/Grenada:-:04:00

America/Noronha:-:02:00

America/Anchorage:-:09:00

America/Guadeloupe:-:04:00

America/North_Dak/Ctr:-:06:00

America/Anguilla:-:04:00

America/Guatemala:-:06:00

America/Panama:-:05:00

America/Antigua:-:04:00

America/Guayaquil:-:05:00

America/Pangnirtung:-:05:00

America/Araguaina:-:03:00

America/Guyana:-:04:00

America/Paramaribo:-:03:00

America/Aruba:-:04:00

America/Halifax:-:04:00

America/Phoenix:-:07:00

America/Asuncion:-:04:00

America/Havana:-:05:00

America/Port-au-Prince:-:05:00

America/Atka:-:10:00

America/Hermosillo:-:07:00

America/Port_of_Spain:-:04:00

America/Barbados:-:04:00

America/Ind/Indian:-:05:00

America/Porto_Acre:-:05:00

America/Belem:-:03:00

America/Ind/Knox:-:05:00

America/Porto_Velho:-:04:00

America/Belize:-:06:00

America/Ind/Marengo:-:05:00

America/Puerto_Rico:-:04:00

America/Boa_Vista:-:04:00

America/Ind/Vevay:-:05:00

America/Rainy_River:-:06:00

America/Bogota:-:05:00

America/Indianapolis:-:05:00

America/Rankin_Inlet:-:06:00

America/Bogota:-:05:00

America/Inuvik:-:07:00

America/Recife:-:03:00

America/Buenos_Aires:-:03:00

America/Iqaluit:-:05:00

America/Regina:-:06:00

America/Cambridge_Bay:-:07:0

America/Jamaica:-:05:00

America/Rio_Branco:-:05:00

America/Cancun:-:06:00

America/Jujuy:-:03:00

America/Rosario:-:03:00

America/Caracas:-:04:00

America/Juneau:-:09:00

America/Santiago:-:04:00

America/Catamarca:-:03:00

America/Ken/Louisville:-:05:00

America/Santo_Domingo:-:04:0

America/Cayenne:-:03:00

America/Ken/Monticello:-:05:0

America/Sao_Paulo:-:03:00

America/Cayman:-:05:00

America/Knox_IN:-:05:00

America/Scoresbysund:-:01:00

America/Chicago:-:06:00

America/La_Paz:-:04:00

America/Shiprock:-:07:00

America/Chihuahua:-:07:00

America/Lima:-:05:00

America/St_Johns:-:03:30

America/Cordoba:-:03:00

America/Los_Angeles:-:08:00

America/St_Lucia:-:04:00

America/Costa_Rica:-:06:00

America/Louisville:-:05:00

America/St_Thomas:-:04:00

America/Cuiaba:-:04:00

America/Maceio:-:03:00

America/St_Vincent:-:04:00

America/Curacao:-:04:00

America/Managua:-:06:00

America/Swift_Current:-:06:00

America/Danmarkshavn:00:00

America/Manaus:-:04:00

America/Tegucigalpa:-:06:00

America/Dawson:-:08:00

America/Martinique:-:04:00

America/Thule:-:04:00

America/Dawson_Creek:-:07:00

America/Mazatlan:-:07:00

America/Thunder_Bay:-:05:00

America/Denver:-:07:00

America/Mendoza:-:03:00

America/Tijuana:-:08:00

America/Detroit:-:05:00

America/Menominee:-:06:00

America/Tortola:-:04:00

America/Dominica:-:04:00

America/Merida:-:06:00

America/Vancouver:-:08:00

America/Edmonton:-:07:00

America/Mexico_City:-:06:00

America/St_Lucia:-:04:00

America/Eirunepe:-:05:00

America/Miquelon:-:03:00

America/Virgin:-:04:00

America/El_Salvador:-:06:00

America/Monterrey:-:06:00

America/Whitehorse:-:08:00

America/Ensenada:-:08:00

America/Montevideo:-:03:00

America/Winnipeg:-:06:00

America/Fort_Wayne:-:05:00

America/Montreal:-:05:00

America/Yakutat:-:09:00

America/Fortaleza:-:03:00

America/Montserrat:-:04:00

America/Yellowknife:-:07:00

America/Glace_Bay:-:04:00

America/Nassau:-:05:00

America/Virgin:-:04:00

America/Godthab:-:03:00

America/New_York:-:05:00

America/Whitehorse:-:08:00

America/Goose_Bay:-:04:00

America/Nipigon:-:05:00

America/Winnipeg:-:06:00

America/Grand_Turk:-:05:00

America/Nome:-:09:00

America/Tortola:-:04:00

 

表B-9 南極大陸/北極地域の GMT オフセット

時間帯:GMT からのオフセット
時間帯:GMT からのオフセット
時間帯:GMT からのオフセット

Antarctica/Casey:+:08:00

Antarctica/McMurdo:+:12:00

Antarctica/Vostok:+:06:00

Antarctica/Davis:+:07:00

Antarctica/Palmer:-:04:00

Arctic/Longyearbyen:+:01:00

Antarctica/DtDUrville:+:10:00

Antarctica/South_Pole:+:12:00

--

Antarctica/Mawson:+:06:00

Antarctica/Syowa:+:03:00

--

 

表B-10 アジアの GMT オフセット

時間帯:GMT からのオフセット
時間帯:GMT からのオフセット
時間帯:GMT からのオフセット

Asia/Aden:+:03:00

Asia/Hong_Kong:+:08:00

Asia/Riyadh87:+:03:07

Asia/Almaty:+:06:00

Asia/Hovd:+:07:00

Asia/Riyadh88:+:03:07

Asia/Amman:+:02:00

Asia/Irkutsk:+:08:00

Asia/Riyadh89:+:03:07

Asia/Anadyr:+:12:00

Asia/Istanbul:+:02:00

Asia/Riyadh:+:03:00

Asia/Aqtau:+:04:00

Asia/Jakarta:+:07:00

Asia/Saigon:+:07:00

Asia/Aqtobe:+:05:00

Asia/Jayapura:+:09:00

Asia/Sakhalin:+:10:00

Asia/Ashgabat:+:05:00

Asia/Jerusalem:+:02:00

Asia/Samarkand:+:05:00

Asia/Ashkhabad:+:05:00

Asia/Kabul:+:04:30

Asia/Seoul:+:09:00

Asia/Baghdad:+:03:00

Asia/Kamchatka:+:12:00

Asia/Shanghai:+:08:00

Asia/Bahrain:+:03:00

Asia/Karachi:+:05:00

Asia/Singapore:+:08:00

Asia/Baku:+:04:00

Asia/Kashgar:+:08:00

Asia/Taipei:+:08:00

Asia/Bangkok:+:07:00

Asia/Katmandu:+:05:45

Asia/Tashkent:+:05:00

Asia/Beirut:+:02:00

Asia/Krasnoyarsk:+:07:00

Asia/Tbilisi:+:04:00

Asia/Bishkek:+:05:00

Asia/Kuala_Lumpur:+:08:00

Asia/Tehran:+:03:30

Asia/Brunei:+:08:00

Asia/Kuching:+:08:00

Asia/Tel_Aviv:+:02:00

Asia/Calcutta:+:05:30

Asia/Kuwait:+:03:00

Asia/Thimbu:+:06:00

Asia/Choibalsan:+:09:00

Asia/Macao:+:08:00

Asia/Thimphu:+:06:00

Asia/Chongqing:+:08:00

Asia/Magadan:+:11:00

Asia/Tokyo:+:09:00

Asia/Chungking:+:08:00

Asia/Manila:+:08:00

Asia/Ujung_Pandang:+:08:00

Asia/Colombo:+:06:00

Asia/Muscat:+:04:00

Asia/Ulaanbaatar:+:08:00

Asia/Dacca:+:06:00

Asia/Nicosia:+:02:00

Asia/Ulan_Bator:+:08:00

Asia/Damascus:+:02:00

Asia/Novosibirsk:+:06:00

Asia/Urumqi:+:08:00

Asia/Dhaka:+:06:00

Asia/Omsk:+:06:00

Asia/Vientiane:+:07:00

Asia/Dili:+:09:00

Asia/Phnom_Penh:+:07:00

Asia/Vladivostok:+:10:00

Asia/Dubai:+:04:00

Asia/Pontianak:+:07:00

Asia/Yakutsk:+:09:00

Asia/Dushanbe:+:05:00

Asia/Pyongyang:+:09:00

Asia/Yekaterinburg:+:05:00

Asia/Gaza:+:02:00

Asia/Qatar:+:03:00

Asia/Yerevan:+:04:00

Asia/Harbin:+:08:00

Asia/Rangoon:+:06:30

--

 

表B-11 大西洋の GMT オフセット

時間帯:GMT からのオフセット
時間帯:GMT からのオフセット
時間帯:GMT からのオフセット

Atlantic/Azores:-:01:00

Atlantic/Faeroe:00:00

Atlantic/South_Georgia:-:02:00

Atlantic/Bermuda:-:04:00

Atlantic/Jan_Mayen:+:01:00

Atlantic/St_Helena:00:00

Atlantic/Canary:00:00

Atlantic/Madeira:00:00

Atlantic/Stanley:-:04:00

Atlantic/Cape_Verde:-:01:00

Atlantic/Reykjavik:00:00

--

 

表B-12 オーストラリアの GMT オフセット

時間帯:GMT からのオフセット
時間帯:GMT からのオフセット
時間帯:GMT からのオフセット

Australia/ACT:+:10:00

Australia/LHI:+:10:30

Australia/Queensland:+:10:00

Australia/Adelaide:+:09:30

Australia/Lindeman:+:10:00

Australia/South:+:09:30

Australia/Brisbane:+:10:00

Australia/Lord_Howe:+:10:30

Australia/Sydney:+:10:00

Australia/Broken_Hill:+:09:30

Australia/Melbourne:+:10:00

Australia/Tasmania:+:10:00

Australia/Canberra:+:10:00

Australia/NSW:+:10:00

Australia/Victoria:+:10:00

Australia/Darwin:+:09:30

Australia/North:+:09:30

Australia/West:+:08:00

Australia/Hobart:+:10:00

Australia/Perth:+:08:00

Australia/Yancowinna:+:09:30

 

表B-13 ブラジルの GMT オフセット

時間帯:GMT からのオフセット
時間帯:GMT からのオフセット
時間帯:GMT からのオフセット

Brazil/Acre:-:05:00

Brazil/East:-:03:00

Brazil/West:-:04:00

Brazil/DeNoronha:-:02:00

--

--

 

表B-14 カナダ/チリ/キューバの GMT オフセット

時間帯:GMT からのオフセット
時間帯:GMT からのオフセット
時間帯:GMT からのオフセット

Canada/Atlantic:-:04:00

Canada/Mountain:-:07:00

Canada/Yukon:-:08:00

Canada/Central:-:06:00

Canada/Newfoundland:-:03:30

Chile/Continental:-:04:00

Canada/East-Ssktchwan:-:06:00

Canada/Pacific:-:08:00

Chile/EasterIsland:-:06:00

Canada/Eastern:-:05:00

Canada/Saskatchewan:-:06:00

Cuba:-:05:00

 

表B-15 エジプト/アイルランド/ヨーロッパの GMT オフセット

時間帯:GMT からのオフセット
時間帯:GMT からのオフセット
時間帯:GMT からのオフセット

Egypt:+:02:00

Europe/Kiev:+:02:00

Europe/Simferopol:+:02:00

Eire:00:00

Europe/Lisbon:00:00

Europe/Skopje:+:01:00

Europe/Amsterdam:+:01:00

Europe/Ljubljana:+:01:00

Europe/Sofia:+:02:00

Europe/Andorra:+:01:00

Europe/London:00:00

Europe/Stockholm:+:01:00

Europe/Athens:+:02:00

Europe/Luxembourg:+:01:00

Europe/Tallinn:+:02:00

Europe/Belfast:00:00

Europe/Madrid:+:01:00

Europe/Tirane:+:01:00

Europe/Belgrade:+:01:00

Europe/Malta:+:01:00

Europe/Tiraspol:+:02:00

Europe/Berlin:+:01:00

Europe/Minsk:+:02:00

Europe/Uzhgorod:+:02:00

Europe/Bratislava:+:01:00

Europe/Monaco:+:01:00

Europe/Vaduz:+:01:00

Europe/Brussels:+:01:00

Europe/Moscow:+:03:00

Europe/Vatican:+:01:00

Europe/Bucharest:+:02:00

Europe/Nicosia:+:02:00

Europe/Vienna:+:01:00

Europe/Budapest:+:01:00

Europe/Oslo:+:01:00

Europe/Vilnius:+:02:00

Europe/Chisinau:+:02:00

Europe/Paris:+:01:00

Europe/Warsaw:+:01:00

Europe/Copenhagen:+:01:00

Europe/Prague:+:01:00

Europe/Zagreb:+:01:00

Europe/Dublin:00:00

Europe/Riga:+:02:00

Europe/Zaporozhye:+:02:00

Europe/Gibraltar:+:01:00

Europe/Rome:+:01:00

Europe/Zurich:+:01:00

Europe/Helsinki:+:02:00

Europe/Samara:+:04:00

Europe/Simferopol:+:02:00

Europe/Istanbul:+:02:00

Europe/San_Marino:+:01:00

Europe/Skopje:+:01:00

Europe/Kaliningrad:+:02:00

Europe/Sarajevo:+:01:00

Europe/Sofia:+:02:00

 

表B-16 香港/アイスランド/インド/イラン/イスラエルの GMT オフセット

時間帯:GMT からのオフセット
時間帯:GMT からのオフセット
時間帯:GMT からのオフセット

Hongkong:+:08:00

Indian/Cocos:+:06:30

Indian/Mauritius:+:04:00

Iceland:00:00

Indian/Comoro:+:03:00

Indian/Mayotte:+:03:00

Indian/Antananarivo:+:03:00

Indian/Kerguelen:+:05:00

Indian/Reunion:+:04:00

Indian/Chagos:+:06:00

Indian/Mahe:+:04:00

Iran:+:03:30

Indian/Christmas:+:07:00

Indian/Maldives:+:05:00

Israel:+:02:00

 

表B-17 ジャマイカ/日本/クワゼリン/リビアの GMT オフセット

時間帯:GMT からのオフセット
時間帯:GMT からのオフセット
時間帯:GMT からのオフセット

Jamaica:-:05:00

Kwajalein:+:12:00

Libya:+:02:00

Japan:+:09:00

--

--

 

表B-18 メキシコ/中東の GMT オフセット

時間帯:GMT からのオフセット
時間帯:GMT からのオフセット
時間帯:GMT からのオフセット

Mexico/BajaNorte:-:08:00

Mexico/General:-:06:00

Mideast/Riyadh88:+:03:07

Mexico/BajaSur:-:07:00

Mideast/Riyadh87:+:03:07

Mideast/Riyadh89:+:03:07

 

表B-19 太平洋/ポーランド/ポルトガルの GMT オフセット

時間帯:GMT からのオフセット
時間帯:GMT からのオフセット
時間帯:GMT からのオフセット

Pacific/Apia:-:11:00

Pacific/Johnston:-:10:00

Pacific/Ponape:+:11:00

Pacific/Auckland:+:12:00

Pacific/Kiritimati:+:14:00

Pacific/Port_Moresby:+:10:00

Pacific/Chatham:+:12:45

Pacific/Kosrae:+:11:00

Pacific/Rarotonga:-:10:00

Pacific/Easter:-:06:00

Pacific/Kwajalein:+:12:00

Pacific/Saipan:+:10:00

Pacific/Efate:+:11:00

Pacific/Majuro:+:12:00

Pacific/Samoa:-:11:00

Pacific/Enderbury:+:13:00

Pacific/Marquesas:-:09:30

Pacific/Tahiti:-:10:00

Pacific/Fakaofo:-:10:00

Pacific/Midway:-:11:00

Pacific/Tarawa:+:12:00

Pacific/Fiji:+:12:00

Pacific/Nauru:+:12:00

Pacific/Tongatapu:+:13:00

Pacific/Funafuti:+:12:00

Pacific/Niue:-:11:00

Pacific/Truk:+:10:00

Pacific/Galapagos:-:06:00

Pacific/Norfolk:+:11:30

Pacific/Wake:+:12:00

Pacific/Gambier:-:09:00

Pacific/Noumea:+:11:00

Pacific/Wallis:+:12:00

Pacific/Guadalcanal:+:11:00

Pacific/Pago_Pago:-:11:00

Pacific/Yap:+:10:00

Pacific/Guam:+:10:00

Pacific/Palau:+:09:00

Poland:+:01:00

Pacific/Honolulu:-:10:00

Pacific/Pitcairn:-:08:00

Portugal:00:00

 

表B-20 シンガポール/システム V/トルコの GMT オフセット

時間帯:GMT からのオフセット
時間帯:GMT からのオフセット
時間帯:GMT からのオフセット

Singapore:+:08:00

SystemV/EST5:-:05:00

SystemV/PST8PDT:-:08:00

SystemV/AST4:-:04:00

SystemV/EST5EDT:-:05:00

SystemV/YST9:-:09:00

SystemV/AST4ADT:-:04:00

SystemV/MST7:-:07:00

SystemV/YST9YDT:-:09:00

SystemV/CST6:-:06:00

SystemV/MST7MDT:-:07:00

Turkey:+:02:00

SystemV/CST6CDT:-:06:00

SystemV/PST8:-:08:00

--

 

表B-21 アメリカ合衆国の GMT オフセット

時間帯:GMT からのオフセット
時間帯:GMT からのオフセット
時間帯:GMT からのオフセット

US/Alaska:-:09:00

US/Eastern:-:05:00

US/Pacific-New:-:08:00

US/Aleutian:-:10:00

US/Hawaii:-:10:00

US/Pacific:-:08:00

US/Arizona:-:07:00

US/Indiana-Starke:-:05:00

US/Samoa:-:11:00

US/Central:-:06:00

US/Michigan:-:05:00

--

US/East-Indiana:-:05:00

US/Mountain:-:07:00

--