アプリケーション ネットワーキング サービス : Cisco Application and Content Networking System(ACNS)ソフトウェア

Cisco ACNS ソフトウェア マニフェス ト ファイルの作成 Release 5.0.3

Cisco ACNS ソフトウェア マニフェスト ファイルの作成 Release 5.0.3
発行日;2012/01/21 | 英語版ドキュメント(2009/02/14 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf | フィードバック

目次

Cisco ACNS ソフトウェア マニフェスト ファイルの作成 Release 5.0.3

マニフェスト ファイルのユーザ ガイドライン

概要

クイック スタート

XML タグの作成

重要なマニフェスト タグ

単一項目 HTTP マニフェスト ファイルの作成

単一項目 FTP マニフェスト ファイルの作成

FTP クローラー マニフェスト ファイルの作成

HTTPS クローラー マニフェスト ファイルの作成

マニフェスト ファイルの検証

ACNS 4.x ソフトウェアから ACNS 5.0 ソフトウェアへのマイグレーション

スタートアップ

サンプル マニフェスト ファイル

テキスト エディタの使用

XML ファイルのフォーマット

一般的な正規表現の作成

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

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

クロール ジョブの指定

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

共有属性の指定

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

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

再生サーバ リストの生成

パブリッシング URL の生成

コンテンツ配信属性の指定

コンテンツ配信のメタデータ指定

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

コンテンツの更新および削除

ライブ コンテンツの指定

その他のサンプル マニフェスト ファイル

サンプル 1

サンプル 2

サンプル 3

サンプル 4

サンプル 5

サンプル ファイルのダウンロード

Manifest Validator ユーティリティ

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

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

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

マニフェスト ファイルの解説

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

CdnManifest

playServerTable

playServer

options

server

host

item

crawler

item-group

matchRule

match

contains

http-meta-data

事前配信コンテンツの更新の設定

XML スキーマ

マニフェスト XML スキーマ

PlayServerTable XML スキーマ

デフォルト PlayServerTable

マニフェスト ファイルの時間帯一覧

マニフェスト ファイルの自動化スクリプト

ワークステーションへの Perl のインストール

Perl スクリプトの入手

Spider スクリプトを使用した Web サイト コンテンツのリスト

Manifest スクリプトを使用したライブ コンテンツと事前配信コンテンツの選択

Spider スクリプトと Manifest スクリプト用のルール ファイルの作成

Cisco ACNS ソフトウェア マニフェスト ファイルの作成 Release 5.0.3


) この章は、ACNS 5.0.3 ソフトウェアに対応して、『Cisco ACNS ソフトウェア デプロイメント コンフィギュレーション ガイド Release 5.0』の第 6 章「マニフェスト ファイルの作成」を更新したものです。 Cisco.com から上記のガイドにアクセスするには、次の URL を使用してください。
http://www.cisco.com/en/US/products/sw/conntsw/ps491/products_configuration_guide_book09186a008012b6c4.html


この章では、ACNS 5.0.3 ソフトウェアでのコンテンツの取得および配信に使用するマニフェスト ファイルを作成する手順について説明します。この章は、次の 2 つの主な項から構成されています。

マニフェスト ファイルのユーザ ガイドライン

この項では、次の内容について説明しています。

Cisco CDN のコンテキストにおけるマニフェスト ファイルの概要と目的

すぐに開始するためのクイック スタート セクション

特定のタスクを実行する方法を説明しているスタートアップ セクション

便利なサンプル マニフェスト ファイル

構文検証ユーティリティ

ライブ コンテンツ配信の説明

マニフェスト ファイルの解説

この項では、次の内容について説明しています。

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

XML スキーマ

マニフェスト ファイルの時間帯一覧

マニフェスト ファイル自動化スクリプトの実行

マニフェスト ファイルのユーザ ガイドライン

ここでは、次の内容について説明します。

概要

クイック スタート

スタートアップ

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

その他のサンプル マニフェスト ファイル

Manifest Validator ユーティリティ

概要

Cisco ACNS 5.0 ソフトウェアは、マニフェスト ファイルと呼ばれている XML(Extensible Markup Language)ベースの参照ファイルを使用して、事前配信コンテンツの取得と配信を管理します。マニフェスト ファイルには、Cisco CDN に登録されている Content Engine への読み込みに使用するコンテンツがリストに登録されます。各チャネルに 1 つのマニフェスト ファイルが必要です。

マニフェスト ファイルは、オリジン サーバに置かれ、固有の URL で識別されます。マニフェスト ファイルのロケーションは、Content Distribution Manager GUI の Modifying Channel ウィンドウでマニフェスト ファイル URL を入力するときに指定されます。コンテンツの処理方法が、Cisco ACNS 4.x ソフトウェアとは異なります。ACNS 5.0 ソフトウェアでは、事前配信コンテンツは Content Distribution Manager には保存されず、オリジン サーバから取り出され、チャネルのルート Content Engine から他の Content Engine へ配信されます。

Content Distribution Manager は、CDN の各ルート Content Engine にマニフェスト ファイル URL を配信します。次にルート Content Engine は、このファイルを解析し、新しい情報または異なる情報がないかどうか調べます。ルート Content Engine は、どのコンテンツが新しいかを判別した後、指定された事前配信コンテンツまたはライブ コンテンツの新しいコンテンツだけを 1 台または複数のオリジン サーバから取り出します。

マニフェスト ファイルには次の機能があります。

管理者およびコンテンツ プロバイダーは、オリジン サーバでコンテンツを提供できます。

HTTP、HTTPS、または FTP を介してファイルをインポートできる一方、要求されたファイルの再生に指定されたタイプのメディア再生サーバに基づいて、他のストリーミング プロトコルを使用して配信できます。

コンテンツの取得と配信は、事前にスケジュールされたコンテンツの利用可能日時を設定して制御できます。マニフェスト ファイル内で、2 通りのコンテンツ取得方法を設定できます。1 つの方法では、単一の <item>(項目)の取得を指定します。もう 1 つの方法では、<crawler>(クローラ)機能を使用して Web サイトまたは FTP サーバをクロール(巡回)して行うコンテンツ取得を指定します。どちらの方法も、取得の開始時刻、および更新がないかどうかコンテンツをチェックする頻度をスケジュールできます。

クイック スタート

このクイック スタートでは、とりあえずコンテンツを取得する際に必要なマニフェスト ファイルを作成する方法を説明します。マニフェスト ファイルをあとでカスタマイズするための便利な属性を指定する方法、およびマニフェスト ファイルの正しい構文の詳細情報などについては、この章の他の項を参照してください。


) Channel プロパティに指定されたユーザ名とパスワードは、マニフェスト ファイルを取り出す場合にだけ使用されます。実際のコンテンツ取得プロセスでは、このユーザ名とパスワードは使用されません。実際にコンテンツを取得する場合は、ユーザ名とパスワードを <server> <host> タグに指定する必要があります。


XML タグの作成

マニフェスト ファイルは、XML 形式で作成されたテキスト ファイルです。XML テキスト ファイルは、一連の XML タグから構成されます。単純な XML タグの例は、次のとおりです。

<item attr1="value1" attr2="value2" />
 

前記の例で、「item」は XML タグの名前であるため、このタグは「item」タグと呼ばれています。タグには、複数の属性があり、name="value" の形式で表します。value フィールドは、二重引用符で囲む必要があります。この例で示されている「item」タグ内には、2 つの属性があります。「attr1」という最初の属性には、「value1」という値があります。「attr2」という 2 つ目の属性には、「value2」という値があります。

通常、タグは「<」から始まり、「/>」で終わりますが、「<」で始まり、「>」で終わることもあります。タグが「>」で終わる場合、その範囲はまだ完了していません。範囲を完了するには、「tag-name」というタグを「</tag-name>」で終わらせます。たとえば、次のとおりです。

<server name="name" >
<host name="name" />
</server>
 

この例の最初の行では、<server> タグは「>」で終わっていますが、その範囲は最初の行で終わっていません。範囲は、</server> タグのある 3 行目で終わっています。2 行目の <host> タグは <server> タグの内部にあるので、この <host> タグは <server> タグのサブタグとなります。<server> タグは、<host> タグの親タグと見なされます。

XML タグ間には、2 つのタグ関係が存在します。ピアとサブタグです。次の例では、2 つの「item」タグは、ピア関係です。

<item src="url1" />
<item src="url2" />
 

ピア関係では、2 番目のタグが開始する前に、最初のタグが「/>」で終わります。次の例では、<server> タグと <host> タグは、サブタグ関係です。

<server name="cisco">
<host name="url" />
</server>
 

サブタグ関係では、2 番目のタグが開始する前に、最初のタグが「>」で終わります。<host> タグは <server> タグのサブタグです。つまり、<server> タグは <host> タグの親となります。

重要なマニフェスト タグ

ここでは、マニフェスト ファイルで使用されるマニフェスト タグに関し、重要なタグについて簡単に説明します。

<CdnManifest> タグ

<CdnManifest> </CdnManifest> のタグ セットは、ACNS 5.0 ソフトウェアのマニフェスト ファイル内で指定される最高レベルのタグでなければなりません。このタグ セットは必須であり、マニフェスト ファイル内の先頭と末尾に使用されます。各 <CdnManifest> タグ セットには、取り出されたり保存されたりする項目、つまりコンテンツ オブジェクトが少なくとも 1 つ入っていなければなりません。

<CdnManifest> タグ セットの例は、次のとおりです。

<CdnManifest>
...
</CdnManifest>
 

<item> タグ

<item> タグは、事前配信されるファイルを 1 つ指定するのに使用します。

item src 属性

src 属性は、URL の指定に必要です。 URL には、絶対 URL を次の形式のように指定できます。

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

src 属性では、相対 URL も指定できます。ただし、プロトコル、ドメイン、ユーザ名、およびパスワードの指定には、<server><host> タグを使用する必要があります。

<crawler> タグ

<crawler> タグは、クロール ジョブを指定するときに使用します。<crawler> タグを使用すると、FTP ディレクトリとそのサブディレクトリをクロールしたり、HTTP ディレクトリ索引を使用してディレクトリをクロールすることができます。

クロール ディレクトリ

HTTP を使用し、所定のディレクトリ内のファイルを取り出すためにディレクトリをクロールするには、組み込みの Web サーバ ディレクトリ索引付け機能を使用可能にします。

このディレクトリ索引付け機能が使用可能であるときに、URL がディレクトリを示している場合、Web サーバは、動的に HTML ページを生成し、すべてのファイルとサブディレクトリをリストに登録します。ACNS ソフトウェアは、この HTML ページを解析することによって、その特定のディレクトリから取り出すことができるファイルを識別できます。

crawler start-url 属性

start-url 属性は、クロールの開始 URL の指定に必要です。 絶対 URL または相対 URL を指定できます( <item> タグ を参照)。

crawler depth 属性

crawler depth 属性は、Web クロールのディレクトリの深さを指定します。 depth 値 0 は、開始 URL ページのクロールだけを許可します。 depth 値 1 は、開始 URL ページとそのリンクのクロールを許可します。

単一項目 HTTP マニフェスト ファイルの作成

次の例では、HTTP プロトコルを使用してコンテンツを取り出すマニフェスト ファイルを作成する、最も簡単な方法を示します。

<CdnManifest>
<item src="http://www.my-server.com/project-one.html" />
<item src="http://www.my-server.com/my-eng-group/project-two.html" />
<item src="http://www.my-server.com/project-three.html" />
</CdnManifest>
 

<CdnManifest> のタグ セットは、マニフェスト ファイルの指定に必要です。この例のマニフェスト ファイルでは、その実行後に、HTTP プロトコルを使用して次の項目を取り出すように、ACNS ソフトウェアに指示を与えています。

http://www.my-server.com/project-one.html

http://www.my-server.com/my-eng-group/project-two.html

http://www.my-server.com/project-three.html

単一項目 FTP マニフェスト ファイルの作成

次の例では、FTP プロトコルを使用してコンテンツを取り出すマニフェスト ファイルを作成する、最も簡単な方法を示します。

<CdnManifest>
<item src="ftp://johnw:my-pass-word@myftp.cisco.com/file1.txt" />
<item src="ftp://johnw:my-pass-word@myftp.cisco.com//full-path/file2.txt" />
</CdnManifest>
 

この例では、FTP サーバ名「myftp.cisco.com」の後に、最初の URL ではスラッシュが 1 つ(/)付いていて、2 番目の URL ではスラッシュが 2 つ(//)付いています。 最初の URL に対するファイル パス「file1.txt」は、相対ファイル名です。これは、FTP のユーザ ログインのホーム ディレクトリを基準にしています。 2 番目の URL に対するファイル パス「/full-path/file2.txt」は、絶対パスです。

FTP クローラー マニフェスト ファイルの作成

次の例では、FTP プロトコルを使用してコンテンツを取り出すクローラー マニフェスト ファイルを作成する、最も簡単な方法を示します。

<CdnManifest>
<crawler start-url="ftp://ftp-server/folder/" depth="10" ttl = "10" />
</CdnManifest>
 

このマニフェスト ファイル例では、 ftp://ftp-server/folder から 10 ディレクトリ レベルの深さまでのクロールを開始し、更新がないかどうか 10 分ごとにそれらのディレクトリを調べるように、ACNS ソフトウェアに指示を与えています。

<crawler> タグは、クロール タスクを指定します。 start-url 属性は、Web クローラーがどこからクロールを開始するかを指定します。 depth 属性 10 は、必要なコンテンツを取得するためにクローラーが調べるサブディレクトリのレベル数を指定します。 ttl 属性は、更新がないかどうかファイルを調べる頻度を指定します。 ttl 属性は、単一項目マニフェスト ファイル内の属性としても指定できます。

HTTPS クローラー マニフェスト ファイルの作成

次のマニフェスト ファイル例では、 https://www.cisco.com/jobs/eng/ から 5 レベルの深さまでクロールするように、ACNS ソフトウェアに指示しています。

<CdnManifest>
<crawler start-url="https://www.cisco.com/jobs/eng/" depth="5" />
</CdnManifest>
 

<CdnManifest> のタグ セットは、単一項目マニフェスト ファイルと同様に、マニフェスト ファイルの指定に必要です。jobs/eng ディレクトリとそのサブディレクトリに対してディレクトリ索引付け機能が使用可能である場合、クローラーは、5 ディレクトリ レベルの深さまでファイルを取り出します。オリジン サーバで HTTP または HTTPS サービスを実行する場合、これらのディレクトリに対してディレクトリ索引付け機能が使用可能になっていなければなりません。ディレクトリ索引付け機能を使用可能にすると、そのディレクトリに対する要求はディレクトリ内のファイルのリストを戻すことができるようになり、ACNS 5.0 ソフトウェアはそのディレクトリをクロールできるようになります。

マニフェスト ファイルの検証

マニフェスト ファイルの作成後にマニフェスト ファイルを検証する場合は、Manifest Validator ユーティリティの使用をお勧めします。詳細は、「Manifest Validator ユーティリティ」 を参照してください。

ACNS 4.x ソフトウェアから ACNS 5.0 ソフトウェアへのマイグレーション

ACNS 5.0 ソフトウェアには、ACNS 4.3 ソフトウェアとは異なり、コンテンツの事前配信のためにソース ファイルを保存する 1 台または複数のオリジン サーバが必要です。これらのオリジン サーバでは、リモート アクセス サーバを HTTP、FTP、または HTTPS サービスをサポートするようにインストールする必要があります。これにより、CDN デバイスが事前配信ファイルを取り出せるようになります。

特定のチャネルに関連付けられているファイルは、一般にオリジン サーバ上の同じディレクトリまたはサブディレクトリに保存されます。オリジン サーバで HTTP または HTTPS サービスを実行する場合、これらのディレクトリに対してディレクトリ索引付け機能が使用可能になっていなければなりません。ディレクトリ索引付け機能を使用可能にすると、そのディレクトリに対する要求はディレクトリ内のファイルのリストを戻すことができるようになり、ACNS 5.0 ソフトウェアはそのディレクトリをクロールできるようになります。

コンテンツが適切なオリジン サーバにアップロードされ使用可能になると、次の単純なマニフェスト ファイルを使用して、コンテンツの取得を指定できます。

<CdnManifest>
<crawler start-url="http://my-server/my-path/" ttl="10" />
</CdnManifest>
 

この例では、「my-path」ディレクトリを更新がないかどうか 10 分ごとに調べるために、関連したチャネルに対してクロール ジョブが指定されています。このセットアップが完了すると、このチャネルに関連付けられているルート Content Engine は、このディレクトリをモニタして、新しいファイルまたは更新されたファイルがあるかどうかを判別した後、それらのファイルを自動的に取り出します。

前記のサンプル マニフェスト ファイルを実行することは、ACNS 4.2 ソフトウェアでユーザが事前配信ファイルを Content Distribution Manager のインポート フォルダにコピーすることと同じです。しかし、マニフェスト ファイルを使用する方が、Content Distribution Manager のインポート機能よりも強力です。たとえば、コンテンツを別々のロケーションに保存するにもかかわらず、そのコンテンツを同じチャネルを通じて配信する必要がある場合、マニフェスト ファイル内に複数のクロール ジョブを作成し、これらのロケーションをモニタできます。次のサンプル マニフェスト ファイルでは、別々のロケーションをモニタできます。

<CdnManifest>
<crawler start-url="http://my-server/my-path-http/" ttl="10" />
<crawler start-url="ftp://my-server/my-path-ftp/" ttl="10" />
</CdnManifest>
 

HTTP サーバの「my-path-http」ディレクトリ、および FTP サーバの「my-path-ftp」ディレクトリをモニタします。

スタートアップ

マニフェスト ファイルの URL は Content Distribution Manager GUI に保存されていますが、そのマニフェスト ファイルを使用すると、コンテンツが取り出される一連のオリジン サーバ、および各サーバ上で取り出されるコンテンツ オブジェクトのリストを定義することができます。XML で作成された完成マニフェスト ファイルには、事前配信コンテンツのある場所を示す一連の URL が含まれています。

ここでは、XML ベースのマニフェスト ファイルの構造を説明します。次に示すサンプル マニフェスト ファイル構文では、大文字の使用とデータ形式に注目してください。完成したマニフェスト ファイルを正常に実行するには、XML タグとタグ属性が、この項で説明されている形式に従っている必要があります。

サンプル マニフェスト ファイル

次の例では、単純な作動可能なマニフェスト ファイルを示します。ユーザ独自のマニフェスト ファイルの作成またはトラブルシューティングを行う場合は、この例をモデルとして使用してください。

<?xml version="1.0"?>
<CdnManifest>
 
<playServerTable>
<playServer name="wmt">
<contentType name="wmt"/>
</playServer>
</playServerTable>
 
<options noRedirectToOrigin="true"/>
 
<server name="server0">
<host name="http://www.cnn.com"/>
</server>
 
<item-group server="server0">
serveStartTime="2003-01-12 14:00:00 PST" serveStopTime="2099-04-12 14:00:00 PST">
<item src="item-01"/>
<crawler start-url="crawler-01" depth="10"/>
</item-group>
 
</CdnManifest>
 

マニフェスト ファイルを指定する形式は重要です。これは、この形式が Cisco Content Engine などのエッジ デバイスで事前配信用に CDN にインポートされるコンテンツ オブジェクトを指定する手段であるためです。マニフェスト ファイルで指定できるのは、Web コンテンツ オブジェクトを取得する場所、これらのオブジェクトを CDN の Content Engine 上に置いておく時間、および ACNS ソフトウェアがこれらのコンテンツが最新のものであるかどうかを調べる頻度などです。

単純なテキスト エディタを使用して、取得命令と事前配信命令を XML 形式で作成できます。実際のマニフェスト ファイルは、Content Distribution Manager がアクセスできる Web サーバ上に常駐します。マニフェスト ファイルの URL は、Content Distribution Manager GUI に保存されます。ACNS ソフトウェアは、マニフェスト ファイルから命令を取り出し、オリジン サーバからコンテンツを取得し、CDN 上の適切なエッジ デバイスに事前配信します。次のいずれかの方法で、サーバからコンテンツを取り出すようにマニフェスト ファイルを指定できます。

1 つまたは複数の単一項目または URL を取り出す。

クローラー ジョブは、開始 URL、ディレクトリの深さのレベル、プレフィックス、フィルタなどの関連したパラメータを使用して開始し、指定した条件でコンテンツを受け入れるか拒否する。

また、コンテンツ取得の開始時刻、およびコンテンツに更新がないかどうかを調べる頻度もスケジュールできます。CDN 上の事前配信コンテンツにエンド ユーザがアクセスする方法についての情報を指定する必要があります。たとえば、エンド ユーザが知っておく必要がある項目としては、メディアの再生に使用される再生サーバ、コンテンツへのアクセス方法、コンテンツが配信される時間、およびメディア再生用の追加メタデータなどがあります。

テキスト エディタの使用

XML ファイルは、HTML ファイルのような単純なテキスト形式のファイルです。Web サイト上でコンテンツを処理または表示する方法を、特殊なタグまたは要素を使用して指定します。したがって、任意の ASCII テキスト エディタを使用してマニフェスト ファイルを作成することが可能です。さまざまなサードパーティ製の XML オーサリング ツールもあり、マニフェスト ファイルを迅速に作成できます。

HTML は、Web ページ作成用のある特定の 1 言語の役目をしますが、XML は、これとは異なり、複数言語作成用の 1 言語です。マニフェスト ファイルを作成する場合、マニフェスト ファイルは XML アプリケーションになります。XML アプリケーションには、タグ内に含まれる情報を記述するタグが入っています。この情報は、マニフェスト ファイル XML アプリケーションから取り出され、タスクを実行するために繰り返し再使用されます。または、別のソースからのその他の情報とマージされ、結果は、別のフレームワークまたは別の機能に使用されます。

XML の作成は、HTML の作成ほど許容範囲が広くありません。 XML には、大文字と小文字の区別があり、引用符の使用、正しいタグの終了、および細部に注意が必要なその他の形式の規則があります。XML タグが正しくフォーマットされ、その他の点で構文が正しいことを注意して確認してください。データのフォーマットに誤りがある場合、たとえば、タグまたはタグ属性内で誤って大文字を使用すると、構文エラーになります。

XML ファイルのフォーマット

マニフェスト ファイルは、XML 形式で作成する必要があります(「マニフェスト ファイルの構造と構文」 を参照)。XML ファイルは、タグ付きのプレーン テキスト ファイルです。単純な XML タグの例は、次のとおりです。

<sample-tag/>
 

タグは、左かぎカッコ(<)で始まり、スラッシュと右かぎカッコ(/>)で終わります。このタグの名前は「sample-tag」です。

属性をもつタグの例は、次のとおりです。

<sample-tag name1="value1" name2="value2" />
 

次のサンプル タグには、属性とサブタグがあります。

<sample-tag name1="value1" name2="value2">
<sub-tag name1="value1" name2="values"/>
</sample-tag>
 

タグ内にサブタグが含まれる場合、サブタグの属性は、スラッシュと右かぎカッコ(/>)ではなく、右かぎカッコ(>)だけで終わり、タグ全体は </tag-name> で終わる必要があります。

XML または XML チュートリアルの詳細については、次の Web サイトを参照してください。

http://www.w3.org/XML/

http://www.w3schools.com/

一般的な正規表現の作成

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

. * \ ?[ ] ^ $

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

正規表現の作成の詳細については、次の Web サイトを参照してください。

http://yenta.www.media.mit.edu/projects/Yenta/Releases/Documentation/regex-0.12/

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

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

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

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

<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 通りの方法があります。

src 属性に、次の形式を使用して絶対 URL を指定します。

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

最初の <item> では、フル パスが使用されています。

<server><host> タグを使用して、オリジン サーバ情報を指定します。また、相対パスだけを指定するには、 src 属性を使用します。

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

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


) コンテンツが取得される前に、マニフェスト ファイルのロケーションを定義する URL を Content Distribution Manager GUI で、入力する必要があります。Modifying Channel ウィンドウで、マニフェスト ファイルのロケーション URL、存続可能時間(TTL)、ユーザ名、およびマニフェスト ファイルへのアクセスに必要なパスワード(ロケーションがパスワードで保護されている場合)を入力します。


クロール ジョブの指定

Web クローラー アプリケーションは、受け入れ可能な Web サイトを計画的かつ自動的に検索し、後で処理するためにアクセスしたページのコピーを作成します。Web クローラーは、アクセスする URL のリストから開始し、ページ内のすべての Web リンクを識別して、アクセスする URL のリストにこれらのリンクを追加します。このプロセスは、次の条件の 1 つまたは複数に適合すると、終了します。

指定された深さまでリンクがたどられた。

最大数のオブジェクトが取得された。

最大サイズのコンテンツが取得された。

ttl (存続可能時間)属性を使用して一定の間隔でサイトをクロールすると、これらのリンクとそれに関連したコンテンツが定期的に更新され、コンテンツが最新のものに保たれます。 ttl 属性の詳細は、「コンテンツの更新および削除」 を参照してください。

Web サイトまたは FTP サーバのクローラー属性を指定するには、<crawler> タグを使用してください。 表 6-1 では、各属性を示し、これらの属性が必須であるか、オプションであるか、またその機能について説明します。

 

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

属性
説明

start-url

(必須)指定されたクロール ジョブを開始する URL を定義します。 フル パスまたは相対パスを指定できます。 相対パスの場合は、<server><host> タグを使用してオリジン サーバ情報を指定する必要があります。

depth (0、1、-1)

prefix

accept

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

reject

(オプション)正規表現を使用して、URL が正規表現と一致する場合、その URL を拒否します。URL は、可能なプレフィックスの一致があるかどうかが調べられた後、reject 正規表現があるかどうかが調べられます。URL がプレフィックスと一致しない場合、ただちに拒否されます。URL がプレフィックスと reject 正規表現の両方と一致する場合、正規表現によって拒否されます。

max-number

(オプション)取得可能なクローラー ジョブ オブジェクトの最大数を指定します。

max-size-in-B
max-size-in-KB
max-size-in-MB

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


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


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"
max-size-in-MB="200"
/>
 

この Web サイト クローラー ジョブ例の属性は、次のとおりです。

start-url (開始 URL)パスは http://www.cisco.com/jobs/eng/index.html である。

Web サイトのリンクを depth (深さ)10 まで検索する。

prefix (プレフィックス) http://www.cisco.com/jobs/eng/ をもつ URL を検索する。

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

取得されるコンテンツの合計サイズが 200 メガバイトになるまでクロールする。

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

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

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

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

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

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

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

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

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

<crawler
start-url="index.html"
depth="2"
prefetch="2001-09-11 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> タグより優先されます。 共有属性については、「options」 を参照してください。

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

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

複数の単一 <item> タグを指定する必要がある場合、および複数の単一項目または URL をもつマニフェスト ファイルを作成する必要がある場合、このような単一 <item> タグの作成に Perl スクリプトを使用できます。自動化 Perl スクリプトを使用する場合は、「マニフェスト ファイルの自動化スクリプト」 を参照してください。

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

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

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

<matchRule> タグ内には複数の <match> サブタグを指定できます。 表 6-2 では、<match> サブタグの属性について説明します。

 

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

属性
説明

mime-type

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

extension

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

time-before

この日時より前に変更されたファイルの一致を、グリニッジ標準時[GMT]時間帯を使用して yyyy-mm-dd hh:mm:ss 形式で指定します。 timezone (時間帯)属性については、「options」 を参照してください。

time-after

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

size-min-in-MB
size-min-in-KB
size-min-in-B

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

size-max-in-MB
size-max-in-KB
size-max-in-B

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

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

<match extension="mpg" size-min-in-KB="50" />
 

<match> 規則自体には相互にブール OR の関係があります。<matchRule> タグは、複数の <match> サブタグをもつことができますが、一致する必要があるのは、これらのサブタグの 1 つだけです。<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 拡張子をもつファイルだけが保持されます。


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

コンテンツ オブジェクトの重要度を定義するには、それらのコンテンツ オブジェクトに優先順位を割り当てることができます。CDN では、コンテンツの優先順位のレベルから、処理の順序が決定されます。コンテンツの優先順位が高いほど、オリジン サーバからのコンテンツの取得が早くなり、Content Engine へのコンテンツの配信が早くなります。


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


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

チャネルの優先順位: Content Distribution Manager GUI の Modifying Channels ウィンドウ内の Acquisition and Distribution Properties 領域にある、コンテンツの Distribution Priority ドロップダウン リスト

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

項目の優先順位: <item> タグまたは <crawler> タグに指定されている属性の優先順位

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

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

コンテンツの優先順位 = チャネルの優先順位 * 10000 + 項目の優先順位


ヒント <item> タグ内の項目の優先順位は、任意の整数にすることができ、制限はありません。特定のコンテンツ オブジェクトに最高の優先順位を付けたい場合は、コンテンツの優先順位の公式で、その特定コンテンツ オブジェクトの項目優先順位に、非常に大きい整数値を指定してください。


オブジェクトに項目で指定された優先順位がない場合、マニフェスト ファイル内の項目索引の順序を使用します。

コンテンツの優先順位 = チャネルの優先順位 * 10000 + 10000 - 項目の索引


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


再生サーバ リストの生成

ACNS 5.0 ソフトウェアでは、CDN 上に事前配信されている HTTP、WMT、および RTSP(RealMedia and QuickTime Streaming Server[QTSS])のコンテンツを再生する再生サーバをサポートしています。CDN は、要求されたプロトコルが、再生サーバ テーブル内のリストと一致するかどうかを調べます。一致する場合、要求は送信されます。一致しない場合、要求は拒否されます。

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

マニフェスト ファイルを使用する。<item> タグ内に再生サーバ属性を設定します。

<playServerTable> タグを使用する。再生サーバの MIME タイプ拡張子名を設定します。

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

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

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

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

<playServerTable>
<playServer name="real">
<contentType name="application/x-pn-realaudio" />
<contentType name="application/vnd.rn-rmadriver" />
<extension name="rm" />
<extension name="ra" />
<extension name="rp" />
<extension name="rt" />
<extension name="smi" />
</playServer>
<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 または PostScript 拡張子をもつすべてのファイルが、コンテンツの再生に HTTP を使用していることに注意してください。

マニフェスト再生サーバ テーブルおよび HTTP 再生サーバのカスタマイズ

通常、マニフェスト ファイルには独自の <playServerTable> または playServer 属性を指定する必要はありません。 ACNS 5.x ソフトウェアには、適切なファイル拡張子または MIME タイプを正しい再生サーバにマップするデフォルトの再生サーバ テーブルがあります(デフォルトの再生サーバ テーブルについては、「デフォルト PlayServerTable」 を参照してください)。

デフォルトの再生サーバ テーブルを使用すると、HTTP 再生サーバがその再生サーバ リストに必ず含まれます。 つまり、ACNS ソフトウェアでは、事前配信されたコンテンツを常に HTTP プロトコルを使用して再生できます。 デフォルトの再生サーバ テーブルが十分でない場合は、独自の <playServerTable> または playServer 属性をマニフェスト ファイルに指定して再生サーバ リストをカスタマイズできます。

しかし、カスタマイズした再生サーバ テーブルまたは属性を使用する場合、ACNS 5.0.1 ソフトウェアと ACNS 5.0.3 ソフトウェアでの実装が多少異なっています。 ACNS 5.0.1 ソフトウェアでは、カスタマイズした再生サーバ テーブルで HTTP を指定しなくても、必ず HTTP 再生サーバは自動的に含まれます。このため、カスタマイズした再生サーバ リストとは別に、事前配信されたすべてのコンテンツは常に HTTP プロトコルを使用して再生できます。 ACNS 5.0.3 ソフトウェアでは、HTTP 再生サーバはデフォルトの再生サーバ テーブルに含まれています。ただし、<item> または <crawler> タグに独自の <playServerTable> または playServer 属性を指定している場合、HTTP プロトコルを使用して HTTP コンテンツまたはその他のコンテンツを再生するには、HTTP 再生サーバを追加する必要があります。 ACNS 5.0.3 ソフトウェアの場合は、HTTP 再生サーバは自動的に含まれません。

次の例では、ACNS 5.0.1 ソフトウェアで WMT 再生サーバだけが指定されている場合であっても、HTTP 再生サーバと WMT 再生サーバの両方でコンテンツは再生されます。

<item src=”video.mpg” playServer=”wmt” />
 

しかし、ACNS 5.0.3 ソフトウェアでは、WMT 再生サーバだけでコンテンツは再生されます。 HTTP 再生サーバでこのコンテンツを再生したい場合は、HTTP 再生サーバを次のように指定する必要があります。

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

また、次の例では、ACNS 5.0.1 ソフトウェアまたは ACNS 5.0.3 ソフトウェアのどちらを使用しているかによって、マニフェストが生成する結果が異なります。

<CdnManifest>
<playServerTable>
<playServer name="wmt">
<extension name="asf" />
<extension name="wmv" />
</playServer>
<playServer name="qtss">
<extension name="mov" />
</playServer>
</playServer>
</playServerTable>
<server name="server">
<host name="http://server.com/" proto="http" />
</server>
<crawler start-url="root" depth="3" ttl="45" />
</CdnManifest>
 

このサンプル マニフェスト ファイルでクロールされたコンテンツには、次の機能があります。

ACNS 5.0.1 ソフトウェアでは、.asf ファイルと .wmv ファイルは HTTP 再生サーバと WMT 再生サーバの両方で再生され、.mov ファイルは HTTP 再生サーバと QTSS(QuickTime)再生サーバで再生されます。これは、HTTP 再生サーバが指定されていない場合でも、必ず自動的に含まれるためです。

ACNS 5.0.3 ソフトウェアでは、.asf ファイルと .wmv ファイルは WMT 再生サーバだけで再生され、.mov ファイルは QTSS 再生サーバだけで再生されます。 HTTP 再生サーバを組み込むには、<playServer name="http"> を追加し、次のようにすべての拡張子をリストする必要があります。

<playServerTable>
<playServer name="wmt">
<extension name="asf" />
<extension name="wmv" />
</playServer>
<playServer name="qtss">
<extension name="mov" />
</playServer>
<playServer name="http">
<extension name="avi" />
<extension name="mpeg" />
<extension name="mpg" />
<extension name="mp3" />
<extension name="rm" />
<extension name="ram" />
</playServer>
</playServerTable>
 

独自の <playServerTable> または playServer 属性を指定していない場合は、デフォルトの再生サーバ テーブルが使用されます。 デフォルトの再生サーバ テーブルには、常に HTTP 再生サーバが含まれています。

次のマニフェストの例では、ACNS 5.0.1 ソフトウェアと ACNS 5.0.3 ソフトウェアで同じように機能します。 <playServerTable> または playServer 属性が指定されていないため、この項目の再生サーバの生成にデフォルトの再生サーバ テーブルが使用され、HTTP 再生サーバが含まれます。 デフォルトの再生サーバ テーブルでは、ファイルの拡張子に関連付けられている再生サーバ以外にも、自動的に HTTP 再生サーバでもファイルが再生されます。

<CdnManifest>
<item src=”video.asf” />
</CdnManifest>
 

パブリッシング URL の生成

パブリッシング URL とは、CDN で事前配信コンテンツを再生する URL です。完全パブリッシング URL は、次の 3 つの部分から構成されます。

スキーム

ドメイン名

パス

パスには、ファイル ディレクトリ パスとファイル名の両方が含まれます。再生サーバ リストは、CDN のパブリッシング URL を判別します。再生サーバ リストは、マニフェスト ファイルから直接生成されます(マニフェスト ファイル内の <playServerTable> タグ、またはデフォルトの <playServerTable> タグから生成されます)。

スキーム

パブリッシング URL のスキームは、コンテンツ タイプの再生に使用されるプロトコルです。 たとえば、.asf ビデオ ファイルを HTTP 再生サーバと WMT 再生サーバの両方で再生できる場合、このコンテンツへのアクセスに HTTP と MMS の 2 つの URL スキームを使用できます。

ドメイン名

パブリッシング URL のドメイン名は、CDN の設定により決まります。Content Engine に要求を転送するのに WCCP が使用される場合、そのドメイン名は、Web サイトまたはチャネル内の起点 FQDN(完全修飾ドメイン名)です。コンテンツ ルーティングが使用される場合、コンテンツ ルーティング FQDN(Web サイトの FQDN)がドメイン名になります。

パス

多くの場合、パブリッシング URL のパスは、相対的な src URL、または <item> タグ内の src 属性です。コンテンツのクロールの場合、オリジン サーバのホスト名を基準にした相対 URL です。

マニフェスト ファイルの属性には、パブリッシング URL のパスを変更できるものがあります。このような属性は、<item> タグの cdn-url 、および <crawler> タグと <item-group> タグの srcPrefix cdnPrefix です。これらの属性は、相対ソース URL を、完全に新しい相対 CDN URL に変換します。

次の例のコンテンツの場合、パスは index.html ではなく、default.html を使用します。

<item src="index.html" cdn-url="default.html" />
 

相対 URL は、常にホスト名を基準にします。次の例では、相対 URL は、sport/index.html ではなく、index.html です。

<server>
<host name="http://www.cnn.com/sport/" />
</server>
 
<item src="index.html" />
 

次の例では、 srcPrefix 属性と cdnPrefix 属性は、クロールされるすべてのコンテンツ オブジェクトのプレフィックスを、NBA/ から ABC/ に変換します。相対 cdn-url は ABC/* です。start-url のパスは ABC/index.html です。

<crawler
start-url="NBA/index.html"
srcPrefix="NBA/"
cdnPrefix="ABC/"
/>

コンテンツ配信属性の指定

マニフェスト ファイルの属性には、Content Engine でコンテンツを配信する方法を制御できるものがあります。このような属性は、<item> タグと <crawler> タグに指定できます。これらと同じ属性は、<item-group> タグまたは <options> タグでも指定できるので、<item> サブタグと <crawler> サブタグによって共有できます。 表 6-3 では、これらのコンテンツ配信属性について説明します。

 

表 6-3 コンテンツ配信の属性

属性
説明

noRedirectToOrigin

(オプション)オリジン サーバへのリダイレクトを true または false に設定します。false に設定すると、CDN Content Engine は、コンテンツを入手できない場合、コンテンツ要求をオリジン サーバに転送できます。true に設定すると、CDN Content Engine はオリジン サーバにコンテンツ要求を転送できず、エラーを生成します。デフォルトの設定は false です。

serveStartTime

(オプション)CDN でコンテンツの配信を開始できる日時を yyyy-mm-dd hh:mm:ss の形式で指定します。配信開始日時が省略される場合、コンテンツは、Content Engine に配信された後、いつでも配信できます。

serveStopTime

(オプション)CDN でコンテンツの配信を一時的に停止する日時を
yyyy-mm-dd hh:mm:ss の形式で指定します。配信停止日時が省略される場合、マニフェスト ファイルの変更またはチャネルの名前変更によってコンテンツが削除されるまで、CDN はコンテンツを Content Engine に配信します。

alternateUrl

(オプション)ユーザが要求するコンテンツが、CDN で用意できていない場合、CDN はこの代替 URL に要求を転送します。代替 URL は、エラー報告ページとして設定できます。この属性では、完全 URL と相対パスの両方をサポートしています(相対パスの場合は、ユーザが要求する URL を基準とする必要があります)。

requireAuth

(オプション)指定されたコンテンツを再生する前にユーザの認証が必要か決定します。認証が必要な場合、Content Engine はオリジン サーバと情報を交換して、認証情報を調べます。 true の場合は、ユーザに対して指定されたコンテンツを再生するための認証が必要です。要求が認証されると、コンテンツが Content Engine から再生されます。この属性が省略されている場合は、発見的解決法(heuristic approach)が使用されます。指定のコンテンツをユーザ名とパスワードを使用して取得する場合、この属性が必ず必要です。認証が必要ない場合は、この属性は必要ありません。

bitrate-in-bps
bitrate-in-kbps
bitrate-in-mbps

コンテンツのビットレートを指定します。 CDN では、再生ダウンロードにこの値が使用されます。たとえば、次のように指定します。
item src="http://www.cisco.com/Prod/ACNS.swf" bitrate-in-kbps="500" / これは、ACNS ソフトウェアで 500 kbps を使用して、ダウンロードと再生を要求されたファイルをダウンロードすることを示しています。

playDuration

ビデオ ファイルの再生時間を秒単位で指定します。 この値は、次の場合に使用されます。

ビデオ ファイルをダウンロードし、HTTP で再生する

ビデオ ファイルを HTTP を使用して再生する場合、CDN では
playDuration 属性が HTTP ダウンロード ビットレートの計算に使用されます。

ビデオの TV-Out プログラムをスケジュールする

この時間の値が省略されている場合、CDN では MPEG ファイルの対応する値の計算を試行します。

ignoreQueryString

この再生属性は、options、item-group、item、および crawler タグに使用できます。 値が true の場合、CDN では、再生の要求 URL にある疑問符(?)以降の文字がすべて無視されます。 この属性を省略する場合、デフォルト値は false です。

たとえば、url=http://web-server/foo の要求 URL をもつコンテンツが事前配信されています。 ユーザが url=http://web-server/foo?id=xxx の URL をもつコンテンツを要求し、 ignoreQureryString 属性の値が false の場合、CDN では http://web-server/foo の要求 URL から事前配信されたコンテンツは使用されません。

ただし、 ignoreQueryString 属性が true の場合は、CDN では
http://www-server/foo?id=xxx と http://www-server/foo の要求 URL を同様に処理し、事前配信されたコンテンツを戻します。

コンテンツ配信のメタデータ指定

場合によっては、コンテンツを再生するためにメタデータを指定する必要があります。たとえば、FTP サーバからコンテンツを取得するにもかかわらず、HTTP で再生する必要がある場合です。この場合、HTTP 再生メタデータ、たとえば、MIME タイプとキャッシュ制御を指定する必要があります。

HTTP メタデータを指定するには、<http-meta-data> サブタグを使用します。次の例に示されている <http-meta-data> サブタグ内では、 name=value 属性は content-type="video/x-asf" と app-data="hh and dd" です。 これらの属性は、HTTP コンテンツが再生されるときに、CDN がエンド ユーザに直接渡すように指定されます。

<http-meta-data content-type="video/x-asf" app-data="hh and dd" />
 

<http-meta-data> は、<item> タグまたは <crawler> タグのサブタグとして指定できます。 <item-group> タグ内のすべての <item> タグまたは <crawler> タグでメタデータを共有する場合、<http-meta-data> タグを <item-group> タグのサブタグとして設定してください。 <crawler> タグに <http-meta-data> サブタグが指定されている場合、クロールされたコンテンツ オブジェクトはこのメタデータを共有します。

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

次の属性では、時刻値を yyyy-mm-dd hh:mm:ss 形式で入力する必要があります。

prefetch

serveStartTime

serveStopTime

expires

time-before

time-after

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

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

コンテンツの更新および削除

コンテンツ オブジェクトが最新のものであるかどうかをモニタし、制御するには、マニフェスト ファイルの ttl (Time To Live; 存続可能時間)属性および expires 属性を使用します。

ttl 属性は、オリジン サーバでコンテンツの更新をチェックする頻度を分数で指定します。 ttl 属性が <item> タグ内で指定されている場合はその項目に適用され、<crawler> タグ内で指定されている場合はそのクロール ジョブに適用されます。

たとえば、 ttl 属性に 10 を指定した場合、対象の項目またはクロール ジョブを 10 分間隔でチェックします。 対象の項目が更新されていた場合、更新されたファイルが再取得されます。


) クロール ジョブが、何千ものファイルをクロールするような非常に大きいジョブになることがあります。 このように多くのファイルを再チェックするには、非常に時間がかかります。 再クロールの速度は、小さいファイルの場合、1 時間に 5,000 ファイルです。 このようなクロール ジョブの場合は、ttl に大きい値を指定することをお勧めします(たとえば毎日 1440 分)。 大きい値を指定しないと、サイトが何度も繰り返しクロールされ、他の取得タスクがブロックされます。


マニフェスト ファイル内で ttl 属性を省略した場合、Time To Live(存続可能時間)は 0(ゼロ)とみなされ、対象の項目が取得された後、再チェックされることはありません。 ttl の値が 0(ゼロ)である場合、コンテンツは 1 回だけ取り出されます。Content Distribution Manager GUI の Fetch Manifest ボタンをクリックするか、Content Engine CLI のルートで acquirer start-channel コマンドを使用しない限り、コンテンツがその後チェックされることはありません。

Fetch Manifest ボタンは、Content Distribution Manager GUI の Channels > Channels > Basic Settings > Definition ウィンドウにあるタスクバーに表示されます。 このボタンが選択されている場合は、マニフェストが更新されているかどうかチェックされ、更新されたマニフェストがダウンロードされ、再解析されます。 また、マニフェストが更新されたかどうかに関係なく、チャネル内のすべてのコンテンツが再チェックされ、更新されたコンテンツがダウンロードされます。 acquirer start-channel コマンドは、この GUI 要素に対応しています。

ttl に -1 のような負の値を割り当てた場合、対象の項目が再チェックされることはありません。 ttl の値が負の場合は、Content Distribution Manager GUI の Fetch Manifest ボタンをクリックしたり、
Content Engine CLI のルートで acquirer start-channel コマンドを使用しても、項目が更新されたかどうかのチェックは行われません。


) Content Distribution Manager GUI(Channels > Channels > Basic Settings > Definition)にある Update Interval では、マニフェスト ファイル自体への更新をチェックする間隔を設定します。 この設定は、マニフェスト ファイルのチェックだけに適用され、コンテンツのチェックには適用されません。


詳細は、「item」 ttl 属性を参照してください。

ttl 属性と混同する属性に、 failRetryInterval 属性があります。 この失敗と再試行の機能は、失敗したコンテンツまたは更新に対して適用されます。 単一の項目またはクロールされたコンテンツの取得が失敗した場合、これらの失敗したオブジェクトの再取得がデフォルトの 5 分後、自動的に試行されます。 この失敗と再試行の間隔は、マニフェスト内の failRetryInterval 属性を使用して指定することもできます。

failRetryInterval ttl の違いは、 ttl 属性が正常に取得されたコンテンツに適用されるのに対して、 failRetryInterval 属性は取得に失敗したコンテンツに適用されます。 ttl 属性は、コンテンツの更新を再チェックするようにソフトウェアで指定する必要があります。一方、 failRetryInterval 属性は、再試行の間隔を変更する場合を除いて、指定する必要はありません。

詳細は、「item」 failRetryInterval 属性を参照してください。

expires 属性は、コンテンツを CDN から削除する日時を指定します。 expires 属性を設定するときに、時刻値を省略すると、マニフェスト ファイルの変更時に明示的にコンテンツを削除するまで、コンテンツは CDN に保存されます。 expires 属性では、yyyy-mm-dd hh:mm:ss(年-月-日 時:分:秒)の形式を使用します。 次の例では、コンテンツの有効期限が 2003 年 6 月 12 日 2:00 p.m に切れます。

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

expires 属性が <item> タグ内で指定されている場合はその項目に適用され、<crawler> タグ内で指定されている場合はそのクロール ジョブに適用されます。 詳細は、「item」 expires 属性を参照してください。

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

モニタ対象の Content Engine 上で、トランザクション ログ機能を使用可能にする。

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

ライブ コンテンツの指定

マニフェスト ファイルに指定できるライブ コンテンツには、次の 2 つのタイプがあります。

wmt-live

real-live

次の例のように、<item> タグを使用し、 type 属性を wmt-live または real-live として指定します。

<CdnManifest>
<server name="wmt-server">
<host name="mms://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
mms://www.company-web-site.org/tmp/ceo-talk.
-->
<server name="real-server">
<host name="real-server" proto="rtsp" />
</server>
<item src="tmp/funny-video" type="real-live" />
<!--
This is "real-live" streaming content type specified by the "type" attribute.The stream URL is rtsp://real-server/tmp/funny-video.
-->
</CdnManifest>
 

前記のマニフェスト ファイル例では、2 つのライブ ストリームが指定されています。 1 つは、
wmt-live
に url=mms://www.company-web-site.org/tmp/ceo-talk が指定され、もう 1 つは、 real-live url=rtsp://real-server/tmp/funny-video が指定されています。

その他のサンプル マニフェスト ファイル

ここでは、5 つのサンプル マニフェスト ファイルを示します。XML では、<!-- と --> 間のテキストはコメントであり、ファイルの実行には影響ありません。これらの 5 つのサンプルでは、個々のタグの意味が分かりやすいように、所定のタグまたはタグのグループのすぐ下に、説明のコメントが追加されています。サンプル ファイル全体をコピーしたり、テキスト ファイルに保存したり、Microsoft Internet Explorer で表示したりすることができます。

また、タグの詳しい説明が必要な場合に、さらに詳しい説明を提供するために、タグの最初の出現個所から本マニュアルの 「マニフェスト ファイルの解説」 への相互参照リンクも、各サンプルのコメントに組み込まれています。

これらのサンプル ファイルを Cisco.com からダウンロードする場合は、「サンプル ファイルのダウンロード」 を参照してください。

5 つのサンプル マニフェスト ファイルに含まれる内容は、次のとおりです。

サンプル 1

HTTP、HTTPS、および FTP プロトコルを使用してコンテンツを取得する方法

認証が必要な場合にユーザ名とパスワードを指定する方法

サンプル 2

次のような取得の属性を指定する方法

ttl :コンテンツの更新をチェックする時間の間隔を設定する

prefetch :ACNS ソフトウェアでオリジン サーバからのコンテンツ取得を開始する時刻を指定する

取得と配信の優先順位を指定する方法

次の再生の属性を指定する方法

serveStartTime :このコンテンツの配信を開始する日時を設定する

serveStopTime :このコンテンツの配信を停止する日時を設定する

alternativeURL :コンテンツがまだ Content Engine に複製されていない場合に使用する代替 URL を指定する

requireAuth :コンテンツを再生するための認証クレデンシャルをユーザに要求する

expires :コンテンツの有効期限の日時を設定する

playServer :指定されたコンテンツを再生できる再生サーバを選択する

noRedirectToOrigin :false に設定され、コンテンツがまだ複製されていない場合、受信要求をオリジン サーバに転送しない

<http-meta-data>:HTTP 再生用のメタデータを追加するタグ

サンプル 3

単純なクロール ジョブ

ディレクトリの FTP クロール

ディレクトリの HTTP クロール

Web サイトの HTTP クロール

matchRule タグを使用した単純なクロール ジョブ

MPEG ファイルだけを取り出すためのディレクトリの FTP クロール

10 MB を超えるファイルだけを取り出すためのディレクトリの HTTP クロール

変更されたファイルだけを取り出すための Web サイトの HTTP クロール

サンプル 4

<contains> タグが組み込まれている項目

サンプル 5

RealMedia および WMT ストリーミング ライブ コンテンツ

サンプル 1

サンプル 1 では、HTTP、HTTPS、FTP の各プロトコルを使用してコンテンツを取得する方法、および認証が必要な場合にユーザ名とパスワードを指定する方法を示しています。

 
<!--
CdnManifest tag pair is absolutely essential for a manifest file.It has to be the first tag and used only as a super tag for other tags.
-->
 
<item src="http://my-server.xyz.com/myphotocollection/index.html" />
<item src="http://my-server.xyz.com/myphotocollection/myname/000001.jpg" />
 
<!--
The preceding XML defines single items, using the <item/> tag, to get from the origin server.
-->
 
<item src="http://my-name:my-password@my-auth-server.xyz.com/mymoviecollection/index.html" />
<item src="http://my-name:my-password@my-auth-server.xyz.com/mymoviecollection/myname/000001.wmv" />
 
<!--
This origin server requires user authentication. Notice that there is my-name:my-password in the url to specify the username and password to access the file
-->
 
<item src="https://my-server.xyz.com/my_secure_photocollection/index.html" />
<item src="https://my-server.xyz.com/my_secure_photocollection/myname/000001.jpg" />
 
<!--
From this origin server, the content is to be acquired using HTTPS, or HTTP over SSL, so that the protocol specified is HTTPS.
-->
 
<server name="auth-httpsserver">
<host name="https://my-auth-server.xyz.com:443"
user="myself" password="mypwd"
 
<!--
The special tags <server> and <item> are required to specify access to origin server since "sslAuthType" cannot be specified in full path URL.The preceding XML defines the origin server from which to get content.The content is to be acquired using HTTPS, or HTTP over SSL, so that the protocol specified is HTTPS.This origin server also requires user authentication. The "user" and "password" attributes specify the required username and password to access content from the origin server. The sslAuthType is used to check either "weak" or "strong" SSL certification. For example, "weak" certification allows expired, self-signed certification.
-->
 
<item src="my_auth_moviecollection/index.html" />
<item src="my_auth_moviecollection/myname/000001.wmv" />
 
<!--
Since the <server> has been defined, we can specify the "src" attribute as a relative path.The preceding XML defines two single items to get from the origin server.These two items are relative to the web publishing root on the server.
-->
 
<item src="ftp://my-server.xyz.com//my-doc-root/myphotocollection/index.html" />
<item src="ftp://my-server.xyz.com/my-doc-root/myphotocollection/file1.jpg" />
 
<!--
The preceding XML defines two single items to be obtained from the origin server. Notice that the first item has two forward slashes ("//").This means the path is absolute or relative to the root directory. The second item only has one forward slash ("/").This means that the content path is relative to the default login directory for an anonymous user.To understand absolute and relative paths, consider the following directory listings:
The first directory lists the contents of /my-doc-dir, and the second directory lists the contents of anonymous-default-dir, where anonymous-default-dir is the default directory for the "anonymous" user.
xyz# ls -lR /my-doc-root/
/my-doc-root/:
total 1
drwxrwxrwx 2 admin root 1024 Dec 28 01:46:00 myphotocollection
/my-doc-root/myphotocollection:
total 1
-rw-rw-rw- 1 admin root 4 Dec 28 01:46 index.html
xyz# ls -lR /anonymous-default-dir/
/anonymous-default-dir/:
total 1
drwxrwxrwx 3 admin root 1024 Dec 28 01:53 my-doc-root
/anonymous-default-dir/my-doc-root:
total 1
drwxrwxrwx 2 admin root 1024 Dec 28 01:53 myphotocollection
/anonymous-default-dir/my-doc-root/myphotocollection:
total 1
-rw-rw-rw- 1 admin root 4 Dec 28 01:53 index.html
The single item with the following absolute path
<item src="/my-doc-root/myphotocollection/index.html" />
fetches the file /my-doc-root/myphotocollection/index.html.
The single item with the following relative path
<item src="my-doc-root/myphotocollection/file1.jpg" />
fetches the file /anonymous-default-dir/my-doc-root/myphotocollection/file1.jpg.
You must be careful to specify exactly what you want.
-->
 
<item src="ftp://my-name:my-password@my-auth-server.xyz.com//my-doc-root/mymoviecollection/index.html" />
<item src="ftp://my-name:my-password@my-auth-server.xyz.com/my-own-moviecollection/wedding/file1.wmv" />
 
<!--
The preceding XML defines two single items to obtain from the origin server.Notice that the first item specifies an absolute path, and the second one specifies a relative path. In this case, the relative path is relative to the default login directory for the user "my-name."
-->
 

サンプル 2

サンプル 2 は、属性の指定方法を示すために作成されたマニフェスト ファイルです。

 
<item src="ftp://my-ftp-server/data/video.mpg"
ttl="60"
type="prepos"
prefetch="2003-03-20 10:00:00 PST"
requireAuth="true"
playServer="http,wmt"
expires="2003-06-12 14:00:00 PST"
alternateUrl="http://my-web-server.com/video-error-page.htm"
priority="50000"
serveStartTime="2003-01-12 14:00:00 PST"
serveStopTime="2099-04-12 14:00:00 PST"
/>
 
<!--comments:
src: specifies the file location and is required.
prefetch: specifies the time when the ACNS sofware can start to acquire content from the origin server.
ttl: checks whether this file is updated every 60 minutes and is required.
noRedirectToOrigin: when false, does not redirect the request to origin server if the content has not yet been replicated to Content Engine.
requireAuth: when true, requires authentication to play back this content to users.User requests are redirected to the origin server to check credentials.If the requests pass the credential check, the content is played back from Content Engine.
playServer: allows the HTTP Apache server and WMT server to play back this content.That is, the supported play back protocols for this content are HTTP and MMS.
expires: removes content from the CDN when it expires on the specified date.
alternateUrl: redirects the user to this URL when the request to play back the content is received but the content has not yet been replicated to the Content Engine.
priority: specifies the item-priority.Content acquisition and distribution is processed in the order set by the overall priority.This means that the higher the overall priority, the earlier the content is acquired and distributed.The overall priority is calculated as channel-priority * 10000 + item-priority.Channel priority is 250 for low, 500 for normal, and 750 for high. Item-priority is the 10000 - (index of the item in the manifest file) if a priority is not specified.For example, there are two items in this manifest file. The first item does not have a "priority" attribute, but the second item does and its priority is 20000. The item-priority of the first item is 10000 - 1 = 9999 and item-priority of the second item is 20000. In this example, the item priority for this item is 50000.
serveStartTime: specifies the time CDN can start to serve this content.
serveStopTime: specifies the time CDN stop to serve this content.
playDuration: specifies the video play duration in second. it will be
used by http play to figure out downloading bitrate
failRetryInterval: specify the interval to retry in minutes if this
acquisition fails. In this example, will retry in 60 minutes
end of comments -->
 
<crawler start-url="ftp://my-ftp-server//root/data/video-files/"
depth="3"
ttl="60"
requireAuth="true"
playServer="http,wmt"
expires="2003-06-12 14:00:00 PST"
alternateUrl="http://my-web-server.com/video-error-page.htm"
priority="50000"
serveStartTime="2003-01-12 14:00:00 PST"
serveStopTime="2003-04-12 14:00:00 PST"
/>
 
<!-- comments
start-url: specifies the crawling start directory "/root/data/video-files/."
depth: specifies the crawl level of three sub-directories.
noRedirectToOrigin: if false and the crawled items are not replicated to Content Engine, the request for that content is not redirected to origin server.
requireAuth: if true, authentication is required for all crawled content.
playServer: all crawled content can be played back by an HTTP web server and WMT streaming server.
expires: all crawled content is expired and deleted on at time specified.
alternateUrl: if any of crawled items is not replicated to Content Engine, the request for that content is redirected to this URL.
priority: all crawled items have the same item-priority as 50000. Because they are in the same channel, they have the same overall-priority.
serveStartTime: all crawled content can be served after the specified time.
serveStopTime: all crawled content cannot be served after the
specified time.
failRetryInterval: if some of contents in this crawl job failed, CDN
will retry these contents at specified interval. In this case, CDN
will retry in 60 minutes
end of comments -->
 
<item src="ftp://my-ftp-server/data/video2.mpg"
playServer="http,wmt" >
<http-meta-data content-type="video/mpeg" />
</item>
 
<!-- comments
The <http-meta-data/> tag can be used to specify any metadata for HTTP play back.For example, because this item is acquired using FTP, this tag must be used to specify content-type for this MPEG file.
end of comments
-->
 
<crawler start-url="ftp://my-ftp-server/data/mpeg-files-2/"
depth="3" >
<http-meta-data content-type="video/mpeg" />
 
<!-- comments
For this crawl job, three sub-directory levels are crawled under "data/mpeg-files-2/" folder.The <http-meta-data> tag is used to specify content-type for HTTP play back for all crawled content.
end of comments -->
 

サンプル 3

サンプル 3 は、クロール機能の使用法を示すマニフェスト ファイルです。

 
<crawler start-url="ftp://ftp-server/pub-data/video-files/" ttl="10" depth="1" />
 
<!-- The preceding XML specifies an FTP crawl job to crawl the "ftp-server" using the <crawler> </crawler> tag pair. Its starting directory is "pub-data/video-files/" and its crawl depth is 1. The files in this folder are monitored at 10-minute intervals.If there are files that get updated, removed, or added, the resulting change is reflected in the CDN. -->
 
<crawler start-url="ftp://ftp-server/video-files/" ttl="10" depth="1" >
<match extension="mpg" />
 
<!-- This crawl job is similar to the preceding crawl job, except that it includes a <matchRule> </matchRule> tag pair to specify the kind of content that is to be acquired. In this case, only files with the "mpg" file extension are acquired.
-->
 
<crawler start-url="http://www.ftp-server.com/pub-data/video-files/" depth="5" />
 
<!-- This is an HTTP directory crawl job.The HTTP server must be configured to enable the directory indexing feature for those directories you want to crawl. For the Apache server, you must modify the Apache configuration file such that it looks like the following:<crawl directories pub-data/video-files/ > Options Index </crawl directories> If the request URL points to a directory, the web server dynamically generates a HTML page with a list of files contained in that directory. In this crawl job, the directory "pub-data/video-files/" and its sub-directories are crawled to a depth level of up to 5. -->
 
<crawler start-url="http://www.ftp-server.com/pub-data/video-files/" depth="5" >
<match size-min-in-MB="10" extension="mpg" />
 
<!-- This crawl job is similar to the preceding crawl job, except that it includes the <matchRule> </matchRule> tag pair. This matchRule tag fetches only files that match files with the extension "mpg" and file sizes equal to or larger than 10 MB.
-->
 
<crawler start-url="http://www.cnn.com/sport/index.htm" prefix="sport/" depth="3" size-min-in-MB="1000" />
 
<!-- This crawl job attempts to crawl part of cnn.com. The start URL is http://www.cnn.com/sport/index.htm. It only crawls URLs with the prefix http://www.cnn.com/sport/, acquiring only files from the directory "sport/." The "depth=3" means the job is to crawl only up to 3 link levels. The max-size-in-MB means that crawling stops if total of crawled items reaches 1000 MB in size.
-->
 
<crawler start-url="http://www.cnn.com/movie/index.htm" depth="3" >
<match extension="mpg" time-after="2002-01-02 00:00:00" />
<match extension="asf" time-after="2002-07-02 00:00:00" />
 
<!-- This crawl job attempts to crawl part of cnn.com. Its start URL is http://www.cnn.com/movie/index.htm. and its crawl depth is 3. This matchRule acquires only files with the "mpg" extension created after than Jan. 2, 2002 or files with "asf" extension created after than July 2, 2002.
-->
 

サンプル 4

サンプル 4 は、<contains> タグの目的と使用法を示すために作成されたマニフェスト ファイルです。<contains> タグは、必要なファイルが Content Engine 上に存在しない場合、コンテンツを配信しないようにするためのものです。一般に、1 つのプレゼンテーションの配信は、複数ファイルの配信から構成されます。たとえば、ASF ビデオ ファイルでそのプレゼンテーションに複数の JPG または HTML ファイルが使用されているにもかかわらず、その JPG または HTML ファイルが存在しない場合、対象の ASF ビデオは配信されません。

<item src="http://my-origin-server/images/intro.html" />
<item src="http://my-origin-server/images/intro.jpg" />
 
<!--
These are just two regular single item acquisition jobs.
-->
 
<item src="http://my-origin-server/movie/movie1.asf" >
<contains cdn-url="images/intro.html" />
<contains cdn-url="images/intro.jpg" />
</item>
 
<!-- The preceding item, movie1.asf, contains two other items, intro.html and intro.jpg. The items are contained using the <contains/> tag.If these two contained items are not present on the Content Engine, then the CDN does not serve the container file movie1.asf.
-->
 

サンプル 5

サンプル 5 は、ライブ コンテンツの指定方法を示すために作成されたマニフェスト ファイルです。 ACNS 5.0 では、 wmt-live と real-live の 2 つのタイプのライブ コンテンツをサポートしています。ライブ ストリーミング コンテンツを指定するには、 type 属性を使用します。

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

サンプル ファイルのダウンロード

前記の 5 つのサンプル ファイルを Cisco.com からダウンロードする手順は、次のとおりです。


ステップ 1 次の URL にアクセスし、サンプル ファイルを見つけます。

http://www.cisco.com/cgi-bin/tablebuild.pl/acns50

ステップ 2 プロンプトが表示されたら、指定されている Cisco.com のユーザ名とパスワードを使用して Cisco.com にログインします。

Cisco ACNS Software Download ページが表示され、Cisco ACNS Software 製品に利用可能なソフトウェア更新版が表示されます。

ステップ 3 ACNS-5.0.1-manifest-samples.zip という名前のファイルを見つけます。このファイルは、サンプル マニフェスト ファイルが入っている ZIP アーカイブです。

ステップ 4 ACNS-5.0.1-manifest-samples.zip ファイルのリンクをクリックします。ダウンロード ページが表示されます。

ステップ 5 Software License Agreement をクリックします。

新たに別のブラウザ ウィンドウが開き、使用許諾契約が表示されます。

ステップ 6 使用許諾契約を読んだ後、その契約を表示するブラウザ ウィンドウを閉じて、Software Download ページに戻ります。

ステップ 7 Download というファイル名のリンクをクリックします。

ステップ 8 Save to file をクリックした後、サンプル ファイルが入っている Zip ファイルをワークステーションに一時的に保存するためのロケーションを選択します。

ステップ 9 任意の解凍プログラムを使用して、ワークステーションまたはネットワーク上のロケーションにスクリプトを解凍します。

サンプル ファイルを解凍した後、これらのファイルを使用して、ユーザの Web サイト専用のマニフェスト ファイルを独自に作成できます。


 

Manifest Validator ユーティリティ

CDN 上に事前配信コンテンツを適切に配置するには、マニフェスト ファイル構文が正しく守られていることが非常に重要であるため、シスコではマニフェスト ファイル構文の検証ユーティリティを提供しています。Manifest Validator は、作成または変更したマニフェスト ファイルの構文が正しいか検証するための Java ベースの CLI であり、Content Distribution Manager GUI に組み込まれています。

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

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

Manifest Validator ユーティリティは、Content Distribution Manager GUI に組み込まれています。図 6-1 では、Manifest Validator GUI ウィンドウを示します。

図 6-1 Content Distribution Manager GUI の Manifest Validator ウィンドウ

 

チャネルを作成した後、次の項目を順に選択して Manifest Validator にアクセスできます。

Channels タブ > Channels > Edit または Create Channel アイコン > Tools > Manifest Validator


) Manifest Validator にアクセスする前に、新しいチャネルを作成するか、既存のチャネルを変更する必要があります。


Validate Manifest File の下の Manifest File フィールドに、テストするマニフェスト ファイルの URL を入力し、Validate をクリックしてください。Manifest Validator は、マニフェスト ファイルの構文を検査して、マニフェスト内のコンテンツ項目ごとにソース ファイルが指定されていることを確認します。次に、コンテンツ項目ごとに URL を調べて、コンテンツが正しく配置されていることを確認した後、GUI ウィンドウの下部に出力を表示します。このマニフェスト ファイル検証ユーティリティは、項目のサイズを判別しません。

有効なマニフェスト ファイル例

次の例は、有効なマニフェスト ファイルを示しています。

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

マニフェスト ファイル検証ユーティリティの出力の最後の行では、マニフェストが有効であるかどうかを示します。しばらく待つと、指定されたマニフェスト ファイルの処理を検証ユーティリティが完了したことを示す次のメッセージが表示されます。

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!

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

マニフェスト ファイル検証ユーティリティのメッセージは、Content Distribution Manager GUI の Manifest Validator ウィンドウにある Manifest File フィールドの下に表示されます。

各出力ファイルには、同じような構造と構文があります。出力ファイルでは、マニフェスト ファイルの誤った構文により生じるエラーまたは警告メッセージが特定されます。検証ユーティリティは、マニフェスト ファイルを次のどちらかであると判別します。

CORRECT :構文違反の可能性がありますが、構文上は有効であり、CDN 上に配置できます。

INCORRECT :構文エラーがあり、CDN 上での配置に使用できません。

構文エラー

マニフェスト ファイル検証ユーティリティが構文エラーを検出するのは、特定の場合だけです。リストされているコンテンツ項目のソース ファイルが、リストされていないため識別できないか、誤った構文を使用してリストされているため識別できない場合です。 構文エラーのあるファイルには、 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: 1 は、マニフェスト ファイルのエラーが発生した行と列の番号です。

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

構文警告

マニフェスト ファイル検証ユーティリティは、マニフェスト ファイル構文内のさまざまな違反に対して構文警告を出力します。構文警告が含まれているファイルには、構文エラーも検出されているかどうかに応じて、 CORRECT または INCORRECT のマークが付いています。

構文警告には、出力に WARNING ラベルが付いています。ラベルの他にも、警告が出された行番号が、マニフェスト属性、有効なオプション、および警告が出された属性のデフォルト値と一緒に表示されます。

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

マニフェスト ファイル検証ユーティリティからの出力を使用して、構文警告、エラー、およびメッセージを特定したら、マニフェスト ファイル構文を修正し、修正されたファイル上でマニフェスト ファイル検証ユーティリティを再実行して、修正されたことを確認できます。

マニフェスト ファイル内の構文警告およびエラーを修正する手順は、次のとおりです。


ステップ 1 任意の XML エディタを使用して、マニフェスト ファイルを開きます。

ステップ 2 マニフェスト ファイル検証ユーティリティの出力を参照しながら、マニフェスト ファイル検証ユーティリティが示す行番号を使用して、マニフェスト ファイル内の構文違反を特定します。

マニフェスト ファイル内のすべての警告とエラーを見直すことをお勧めします。警告の中には、マニフェスト ファイル検証ユーティリティでは構文が正しいと見なされるものも含まれています。このため、指定のコンテンツを CDN に配置する際に、それらの警告が問題の原因になることがあります。

ステップ 3 構文警告とエラーに必要な修正を加えた後、 Save をクリックします。

ステップ 4 マニフェスト ファイル検証ユーティリティでマニフェスト ファイルを再検証して、新しいエラーや警告、または解決されていないエラーや警告がないかどうか、検証ユーティリティの出力を見直します。

ステップ 5 マニフェスト ファイル検証ユーティリティですべてのエラーと警告が適切に解決され、マニフェスト ファイル構文が修正されるまで、ステップ 1ステップ 4 を繰り返します。


 

マニフェスト ファイルの解説

ここでは、次の内容について説明します。

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

XML スキーマ

マニフェスト ファイルの時間帯一覧

マニフェスト ファイルの自動化スクリプト

最も効率がよく、最もエラーが起きにくいマニフェスト ファイルの作成方法は、次のとおりです。

この章のサンプル マニフェスト ファイルの 1 つを、正しい XML 構文で、特定のニーズに合わせて変更する。

Cisco.com からダウンロード可能な、2 つのサンプル Perl スクリプトをそのまま使用するか、これらのダウンロードしたスクリプトを独自の目的に合わせてカスタマイズする。

この章に示されている、事前作成済みのサンプル XML マニフェスト ファイルの 1 つを使用して、作業を開始できます。自分のコンテンツ取得と事前配信のニーズに最も近いサンプル マニフェスト ファイルを選択し、必要に応じて XML コードを変更すると同時に、XML 構文が正しいことを確認します。

また、シスコが提供しているサンプル Perl スクリプトを使用することもできます(「Perl スクリプトの入手」 を参照)。

適切なマニフェスト ファイルを作成した後、そのファイルの構文が正しいかどうかを確認するには、Content Distribution Manager GUI から、新たに作成した XML コード上で Manifest Validator ユーティリティを実行します(「Manifest Validator ユーティリティ」 を参照)。

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

Cisco ACNS 5.0 ソフトウェアのマニフェスト ファイルは、簡易テキスト エディタを使用して編集でき、このファイルは CDN データを作成し、処理するさまざまな機能を備えています。 表 6-4 では、マニフェスト ファイルのタグ、対応する属性とサブ要素、および各タグについて簡単に説明します。また、 表 6-5 では、マニフェスト ファイルでタグをネストする方法の例を示します。それ以降のセクションでは、マニフェスト ファイルのタグ、それらのタグに含まれているデータ、およびタグの属性を詳しく説明します。

 

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

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

CdnManifest

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

なし

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

playServerTable

<playServer/>

なし

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

playServer

<contentType/>
<extension/>

name 1

real
http

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

contentType

なし

name

http
media
qtss

(オプションですが、コンテンツ タイプまたは拡張子のどちらかが必要です)再生サーバにマップされた、MIME タイプのコンテンツの名前を指定します。

extension

なし

name

http
media
qtss

(オプションですが、コンテンツ タイプまたは拡張子のどちらかが必要です)再生サーバにマップされたファイル拡張子の名前を指定します。

options

なし

timeZone
alternateUrl
expires
noRedirectToOrigin
playServer
prefetch
serveStartTime

serveStopTime
server
priority
ttl
type
playDuration
failRetryInterval

(オプション)共有可能な、マニフェスト ファイルに固有の属性を定義します。

server

<host/>

name

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

host

なし

name
proto
port
user

password
unencoded
sslAuthType

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

item

<contains/>
<http-meta-data/>

src
cdn-url
type
noRedirectToOrigin
playServer
prefetchexpires
ttl

serveStartTime
serveStopTime
alternateUrl
priority
requireAuth
playDuration
failRetryInterval

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

crawler

<http-meta-data/>
<matchRule/>

start-url
depth
prefix
accept
reject
max-number
max-size-in-MB
srcPrefix
cdnPrefix
requireAuth
noRedirectToOrigin
playServer

prefetch
expires
ttl
serveStartTime
serveStopTime
alternateUrl
priority
server
type
playDuration
failRetryInterval

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

item-group

<http-meta-data/>
<matchRule>
<matchRule/>
<crawler></crawler>
<item></item>

alternateUrl
expires
noRedirectToOrigin
playServer
prefetch
serveStartTime
serveStopTimeserver
priority

srcPrefix
cdnPrefix
ttl
type
requireAuth
playDuration
failRetryInterval

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

matchRule

<match>

なし

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

match

なし

MIME-type
extensions
time-before

time-after
size-min-in-KB
size-max-in-KB

(オプション)CDN でコンテンツ オブジェクトを取得する前のコンテンツ オブジェクトの取得条件を指定します。

contains

なし

cdn-url

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

http-meta-data

なし

name=value

(オプション)FTP で取得されるコンテンツにコンテンツ タイプを指定するために、エンド ユーザの HTTP 要求に HTTP 応答ヘッダーを送信します。

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

 

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

<CdnManifest>

<playServerTable>
<playServer>

 

<contentType/>
<extension/>

</playServerTable>
</playServer>

<options>

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

</options>

<server>

<host/>

</server>

<item>

<contains/>
<http-meta-data/>

</item>

<crawler>

<http-meta-data/>
<matchRule/>

</crawler>

<item-group>

<contains/>
<http-meta-data/>

</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 タイプ コンテンツ(優先マッピング)とファイル拡張子の両方に対して設定できます。再生サーバ テーブルを使用すると、特定のオリジン サーバからのコンテンツ タイプに対する、Content Engine 上のデフォルト マッピングを上書きすることができます。 再生サーバには、 WMT、RealMedia、HTTP、または QTSS の 4 つのストリーミング サーバのうち 1 つを使用できます。マニフェスト ファイルで <playServerTable> タグが設定されていない場合、デフォルトの <playServerTable> タグが使用されます。

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

コンテンツ項目 URL

再生サーバのマッピングは、デフォルトの <cdn-media> タグの代わりに、オリジン サーバ名の直後に表示されます。

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

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

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

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

システム レベル

再生サーバのマッピングは、CDN の始動時に設定されます。

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

属性

なし

サブ要素

<playServerTable> 要素には、1 つ以上の <playServer> タグを含める必要があります。

playServer

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


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


属性

<playServer> タグの名前は必須です。各 <playServer> タグは、name 属性を使用してコンテンツがマップされるサーバのタイプを指定します。ACNS 5.0 ソフトウェアでは、Content Engine は、次の 4 つのタイプの再生サーバをサポートしています。

real:RealMedia RealServer

http:HTTP Web サーバ

qtss:Apple QuickTime Streaming Server

wmt:Microsoft Windows Media Technologies

サブ要素

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

<contentType/>

<extension/>

contentType

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

属性

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

サブ要素

なし

 

表 6-6 マニフェスト ファイルのコンテンツ タイプ別のサポートされるメディア ファイル形式

拡張子
サポートされる形式
注記

http

AVI(Audio Visual Interleaved)

GIF(Graphics Interchange Format)

HTML、HTM(Hypertext Markup Language)

JPG(Joint Photographic Experts Group)

PPT(Microsoft PowerPoint)

DOC(Microsoft Word)

MPEG、MPG(Moving Picture Experts Group)

MP3(MPEG Audio Layer 3)

PDF(Portable Document Format)

MOV(QuickTime Movie)

ASX

コンテンツ項目は、HTTP サーバによって処理されます。このタグは、サーバがストリーミングできないコンテンツ(たとえば、Adobe PDF、PostScript(PS)、および MPG ファイル)に使用されます。

media

AVI

GIF

HTML、HTM

JPG

PPT

DOC

MPEG、MPG

MP3

PDF

これは、Cisco ACNS 5.0 ソフトウェアで使用されるデフォルト値です。コンテンツ オブジェクトを処理するための再生サーバが指定されない場合、このメディア タグが使用されます。リンクされるオブジェクトは、事前配信のコンテンツ オブジェクトかライブ コンテンツ オブジェクトのどちらかにすることができます。

qtss

QT(QuickTime)

MOV

コンテンツ オブジェクトは、Apple QuickTime Streaming Server によって処理されます。

real

RA(RealAudio)

RM(RealMedia)

RP(RealPix)

RT(RealText)

SMIL(Synchronized Container Format)

コンテンツ オブジェクトは、RealServer によって処理されます。

wmt

ASF(WMA と WMV を含む)

ASX

コンテンツ オブジェクトは、Windows Media Services によって処理されます。

extension

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

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

属性

name 属性は必須であり、マップされるコンテンツ タイプのファイル拡張子を指定します。指定された拡張子をもつファイルが要求されると、マップされた再生サーバが、それらのファイルの配信に使用されます。

サブ要素

なし

<CdnManifest>
<playServerTable>
<playServer name="real">
<contentType name="application/x-pn-realaudio" />
<contentType name="application/vnd.rn-rmadriver" />
<extension name="rm" />
<extension name="ra" />
<extension name="rp" />
<extension name="rt" />
<extension name="smi" />
</playServer>
<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 つ以上のグローバル設定値を指定します。マニフェスト ファイルごとに 1 つの <options> タグしか指定できません。

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

属性

timeZone 属性は、 serveStart serveStop expire 、および prefetch などの属性の時間値に時間帯を指定します。

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

alternateUrl

bitrate-in-bps/bitrate-in-kbps/bitrate-in-mpbs

expires

ignoreQueryString

noRedirectToOrigin

playServer

prefetch

serveStartTime

serveStopTime

server

priority

ttl

type

requireAuth

playDuration

failRetryInterval

サブ要素

なし

<CdnManifest>
<options
noRedirectToOrigin= "true"
timeZone="PST" />
 
</CdnManifest>

server

<server> と <host> のタグ フィールドには、オリジン コンテンツ ソース サーバを設定します。<server> タグ フィールド内にある <host> タグ フィールドには、コンテンツ ソース ホストを設定します。ACNS 5.0 ソフトウェアでは、1 つの <server> タグ フィールドに複数の <host> タグ フィールドを入れることはできません。

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

属性

name

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

サブ要素

<host/>

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

host

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

属性

name

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

proto

proto 属性はオプションであり、ホストからコンテンツを取り出すのに使用される通信プロトコルを識別します。サポートされるプロトコルは、HTTP、HTTPS、または FTP です。デフォルトの proto 属性は HTTP です。name 属性が完全修飾ドメイン名(FQDN) である場合、 proto 属性を空にすることができます。

port

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

user

user 属性はオプションであり、ホスト アクセスに使用される保護ログインを識別します。

password

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

unencoded

unencoded 属性はオプションです。true に設定される場合、パスワードはエンコードされません。 unencoded 属性のデフォルト設定は false です。

sslAuthType

sslAuthType 属性はオプションであり、暗号化のタイプに次の 2 つの値を指定できます。

strong

sslAuthType 属性のデフォルト設定は strong です。

weak

サブ要素

なし

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

相対パスを使用する場合は、<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 は、部分的に変更されます。 シャープ記号以降の文字は、シャープ記号も含めすべて廃棄されます。


server

server 属性はオプションであり、<server> タグ内のサーバ名を参照します。 server 属性が省略される場合、最も近い <server> タグにリストされているサーバが使用されます。この <item> に近い <server> タグがない場合、マニフェスト サーバが使用されます。

cdn-url

cdn-url 属性はオプションであり、エンド ユーザがこのコンテンツにアクセスできるようにする相対 CDN URL です。 cdn-url 値が指定されない場合、 src 値は相対 CDN URL として使用されます。


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


type

type 属性はオプションであり、コンテンツが CDN 上に事前配信されるか、ライブであるかを定義します。type 属性には、 prepos wmt-live 、および real-live の 3 つがあります。 wmt-live 属性と real-live 属性は、ライブ コンテンツの配信に使用されます。このフィールドがブランクのままである場合、デフォルトのタイプは prepos です。

noRedirectToOrigin

noRedirectToOrigin 属性はオプションであり、オリジン サーバへの転送を true または false に設定します。false に設定すると、CDN Content Engine またはその他のエッジ デバイスは、コンテンツがそのデバイスで入手できない場合、コンテンツ要求をオリジン サーバに転送できます。true に設定すると、CDN Content Engine またはエッジ デバイスは、オリジン サーバにコンテンツ要求を転送せず、エラーを生成します。 noRedirectToOrigin のデフォルト設定は false です。 事前配信コンテンツの更新に対する noRedirectToOrigin 属性の影響については、「事前配信コンテンツの更新の設定」 を参照してください。

playServer

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

prefetch

prefetch 属性はオプションであり、コンテンツがオリジン サーバから取得される日時を yyyy-mm-dd hh:mm:ss(年 - 月 - 日 時 : 分 : 秒)形式で指定します。この時間の時間帯は、<options> タグで指定できます。時間帯内の夏時間と標準時間との間の自動変換はサポートされませんが、夏時間の特別な指定(たとえば、太平洋夏時間の PDT)を使用できることに注意してください。次の例では、事前取得時間は、太平洋夏時間の 2002 年 9 月 5 日午前 9 時 9 分 9 秒です。

<options timeZone="PDT" />

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

時刻値が省略される場合、コンテンツは即時に取得されます。

expires

expires 属性はオプションであり、コンテンツが CDN から削除される日時を yyyy-mm-dd hh:mm:ss 形式で指定します。 または、GMT 時間帯での指定もできます(「マニフェスト ファイルにおける時刻値の指定」 を参照)。この時刻値が省略される場合、関連したマニフェスト ファイル コードを変更するときにコンテンツが削除されるまで、コンテンツは CDN に保存されます。 事前配信コンテンツの更新に対する HTTP ヘッダーの expires 属性の影響については、「事前配信コンテンツの更新の設定」 を参照してください。

ttl

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

ttl 属性の値
アクション

ttl > 0

マニフェストが再解析されるか、Refetch ボタンが押された場合、コンテンツが ttl 分ごとに再チェックされます。

ttl=0

コンテンツが 1 回だけ取得され、その後チェックされません。 マニフェストが再解析されるか、Refetch ボタンが押された場合、コンテンツの再チェックだけが行われます。

ttl < 0

コンテンツが 1 回だけ取得され、その後チェックされません。 マニフェストが再解析され、Refetch ボタンが押されても、コンテンツの再チェックは行われません。

serveStartTime

serveStartTime 属性はオプションであり、CDN でコンテンツの配信を開始できる日時を yyyy-mm-dd hh:mm:ss 形式で指定します。配信日時が省略される場合、コンテンツが Content Engine またはその他のエッジ デバイスに配信された後、コンテンツはいつでも配信できます。

serveStopTime

serveStopTime 属性はオプションであり、CDN でコンテンツの配信を一時的に停止する日時を yyyy-mm-dd hh:mm:ss 形式で指定します。配信を停止する日時が省略される場合、関連したマニフェスト ファイル コードを変更してコンテンツが削除されるまで、CDN はコンテンツを配信します。 事前配信コンテンツの更新に対する serveStopTime 属性の影響については、「事前配信コンテンツの更新の設定」 を参照してください。

alternateUrl

alternateUrl 属性はオプションです。ユーザが要求するコンテンツが CDN 内にない場合、CDN はその要求をこの代替 URL に転送します。代替 URL は、エラー報告ページとして設定できます。 alternateUrl 属性では、完全 URL と相対パスの両方をサポートしています( alternateUrl 属性が相対パスである場合、 alternateUrl 属性は、要求する URL を基準にしている必要があります)。

priority

priority 属性はオプションであり、コンテンツ処理の優先順位を付けるための任意の整数値を指定できます。優先順位の値が省略される場合、マニフェスト ファイル内の索引順序が、優先順位の設定に使用されます。

requireAuth

requireAuth 属性はオプションであり、指定されたコンテンツを再生する前に、ユーザを認証する必要があるかどうかを決定します。認証が必要な場合、Content Engine はオリジン サーバと情報を交換して、認証情報を調べます。 true の場合、ユーザに対して指定されたコンテンツを再生するために認証が必要です。要求が認証されると、コンテンツが Content Engine から再生されます。この属性が省略されている場合は、発見的解決法(heuristic approach)が使用されます。指定のコンテンツをユーザ名とパスワードを使用して取得する場合、この属性が必要です。認証が必要ない場合は、この属性は必要ありません。

playDuration

ビデオ ファイルの再生時間を秒単位で指定します。 この間隔の値は、次の場合に使用されます。

ビデオ ファイルをダウンロードし、HTTP で再生する

ビデオ ファイルを HTTP を使用して再生する場合、CDN では playDuration 属性が HTTP ダウンロード ビットレートの計算に使用されます。

ビデオの TV-Out プログラムをスケジュールする

この時間の値が省略されている場合、CDN では MPEG ファイルの対応する値の計算を試行します。

failRetryInterval

コンテンツの取得が失敗した場合の再試行の間隔を分単位で指定します。 たとえば、
failRetryInterval ="10" の場合は、CDN ではコンテンツの取得が失敗したときに 10 分ごとに取得が実行されます。 この再試行値が省略されている場合、デフォルト値の 5 分( failRetryInerval に指定できる最小値)が使用されます。 5 分より短い時間が指定された場合は、この値が 5 分に変換されます。

単一の項目とクロール項目では、動作が異なります。

単一の項目が失敗した場合:

if ( ttl != 0, ttl < retryInterval)
 

この項目は、 ttl 属性で再チェックされます。 それ以外の場合は、 failRetryInterval 属性を使用して再チェックされます。

クロール項目が失敗した場合:

複数ページに渡りコンテンツの取得が失敗した場合は、300 と 400 シリアル エラー ステータス コードを除いて、失敗した項目だけが再試行間隔で再チェックされます。

ttl 属性に指定された間隔で、すべてのページが再クロールされます。

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

たとえば、 ttl = 10 および retry=4 と指定されている場合、経過分数におけるアクションは、次のようになります。

 

分数
アクション

0

クロール

4

再チェックの失敗

8

再チェックの失敗

10

再クロール

14

再チェック

18

再チェック

20

再クロール

bitrate-in-bps/bitrate-in-kbps/bitrate-in-mbps

コンテンツのビットレートを指定します。 CDN では、この値は再生時およびダウンロード時に使用されます。たとえば、
<item src=" http://www.cisco.com/Prod/ACNS.swf" bitrate-in-kbps="500" /> の場合、ACNS ソフトウェアでは、対象ファイルのダウンロードと再生を要求されたとき 500 kbps を使用してこのファイルをダウンロードします。

ignoreQueryString

この再生属性は、options、item-group、item、および crawler タグに使用できます。 値が true の場合、CDN では、再生の要求 URL にある疑問符(?)以降の文字がすべて無視されます。 この属性を省略する場合、デフォルト値は false です。

たとえば、url=http://web-server/foo の要求 URL をもつコンテンツが事前配信されています。 ユーザが url=http://web-server/foo?id=xxx の URL をもつコンテンツを要求し、 ignoreQureryString 属性の値が false の場合、CDN では http://web-server/foo の要求 URL から事前配信されたコンテンツは使用されません。

一方、 ignoreQueryString 属性が true の場合は、CDN では http://www-server/foo?id=xxx と http://www-server/foo の要求 URL を同様に処理し、事前配信されたコンテンツを戻します。

サブ要素

<contains/>

<http-meta-data/>

<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」 を参照)。

depth

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

0 = 開始 URL だけを取得する
1 = 開始 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" は、2 つの条件、つまり URL がプレフィックスと一致すること、およびストリング「stock」を含んでいることを満たす URL だけが検索されることを意味します(「一般的な正規表現の作成」 を参照)。

reject

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

max-number

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

max-size-in-MB

max-size-in-MB 属性はオプションであり、クローラー ジョブが取得可能な最大コンテンツ サイズをメガバイト単位で指定します。このサイズ属性は、メガバイト数(MB)、キロバイト数(KB)、またはバイト数(B) で表すことができます。

srcPrefix

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

cdnPrefix

cdnPrefix 属性はオプションであり、 srcPrefix 属性と一緒に使用する必要があります。

requireAuth

requireAuth 属性はオプションであり、指定されたコンテンツを再生する前に、ユーザを認証する必要があるかどうかを決定します。認証が必要な場合、Content Engine はオリジン サーバと情報を交換して、認証情報を調べます。 true の場合、ユーザに対して指定されたコンテンツを再生するために認証が必要です。要求が認証されると、コンテンツが Content Engine から再生されます。この属性が省略されている場合は、発見的解決法(heuristic approach)が使用されます。指定のコンテンツをユーザ名とパスワードを使用して取得する場合、この属性が必要です。認証が必要ない場合は、この属性は必要ありません。

item 属性で説明されている次の属性は、<crawler> タグでも指定できます。

alternateUrl

bitrate-in-bps/bitrate-in-kbps/bitrate-in-mbps

expires

failRetryInterval

ignoreQueryString

noRedirectToOrigin

playDuration

playServer

prefetch

serveStartTime

serveStopTime

server

priority

ttl

type

サブ要素

<http-meta-data/>

<matchRule></matchRule>

<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"
max-size-in-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

bitrate-in-bps/bitrate-in-kbps/bitrate-in-mbps

expires

failRetryInterval

ignoreQueryString

noRedirectToOrigin

playDuration

playServer

prefetch

requireAuth

serveStartTime

serveStopTime

server

priority

ttl

type

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

srcPrefix

cdnPrefix

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

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

srcPrefix 属性と cdnPrefix 属性は、次の規則により相対 CDN URL を生成します。

cdn-url 属性が <item> タグ内に存在する場合、相対 CDN URL には、 cdnPrefix 属性と cdn-url 属性の両方が含まれています。たとえば、 cdnPrefix ="eng/spec" および cdn-url ="e/f.html" の場合、URL 内の相対パスは「eng/spec/e/f.html」です。

srcPrefix 属性が <item> タグ内に存在しない場合、相対 CDN URL は、 cdnPrefix 属性と相対ソース URL です。

相対ソース URL のプレフィックスが srcPrefix 属性と一致しない場合、相対 CDN URL は cdnPrefix 属性とソース相対 URL です。

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

次の例では、<item> の相対 CDN URL は、「acme/default.htm」です。

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

次の例では、 srcPrefix 属性(たとえば、「design/plan/」)をもつコンテンツ オブジェクトは、相対 CDN URL 「acme/」、および「design/plan/」が除去された相対ソース URL をもっています。「design/plan/」と一致しない prefix 属性をもつその他のコンテンツ オブジェクトは、「acme/」、およびオリジナルの相対ソース URL をもっています。

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

サブ要素

<matchRule></matchRule>

<http-meta-data/>

<crawler></crawler>

<item></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 サイト全体が検索されますが、50 キロバイトを超え、.jpg ファイル拡張子をもつファイルだけが取得されます。

<crawler start-url="index.html" depth="-1" >
<matchRule>
<match size-min-in-KB="50" extensioin="jpg" />
</matchRule>
</crawler>
 

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

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

属性

なし

サブ要素

1 つ以上の <match> タグ

match

<match> </match> タグはオプションであり、コンテンツ オブジェクトが CDN で取得される前の取得条件を指定します。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 形式で指定します。 時間パラメータは、GMT 時間帯で表す必要があります(GMT からのオフセットについては、「マニフェスト ファイルの時間帯一覧」 を参照)。

time-after

time-after 属性は、この日時より後に変更されたコンテンツの取得を yyyy-mm-dd hh:mm:ss 形式で指定します。 時間パラメータは、GMT 時間帯で表す必要があります(GMT からのオフセットについては、「マニフェスト ファイルの時間帯一覧」 を参照)。

size-min-in-MB

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

size-max-in-MB

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

サブ要素

なし

<! - - 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 size-min-in-KB=”1” extension=”xxx”/>
</matchRule>
</crawler>
</item-group>

contains

<contains/> タグはオプションであり、現在記述されているコンテンツ項目内に組み込まれているコンテンツ オブジェクトを識別します。たとえば、<contains/> リンクを使用する項目に対する SMIL(Synchronized Multimedia Integration Language) ファイル要求のコンポーネントが受け入れられるのは、従属コンテンツ オブジェクトが Content Engine 内に存在することを CDN が判別した後だけです。

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

<contains /> タグは、.asf や .rp のようなビデオ ファイルに組み込みファイルを格納するために使用します。CDN は、タグに含まれているすべての項目が存在しない限り、このコンテンツ項目を配信しません。

属性

cdn-url 属性は必須であり、組み込みコンテンツのいずれかの相対 CDN 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>

http-meta-data

<http-meta-data> タグはオプションであり、コンテンツの HTTP 再生に使用されます。コンテンツ オブジェクトが HTTP を通じて要求される場合、これらの属性は、HTTP 応答ヘッダーとしてエンド ユーザに送信されます。このタイプの応答ヘッダーは、FTP 取得コンテンツにコンテンツ タイプを指定する場合に便利です。

この要素は、<item> タグまたは <crawler> タグにネストすることもできます。<item> または <crawler> のタグ レベルの設定値は、<item-group> タグ レベルの設定値より優先されます。

属性

name=value 属性は、標準 HTTP ヘッダーのメタデータと、カスタマイズされたアプリケーションのメタデータの両方にすることができます。<item-group> タグを親とする場合、この属性は、グループ内に含まれているコンテンツに適用されます。

この属性は、<item> タグまたは <crawler> タグにネストすることもできます。<item> または <crawler> のタグ レベルの設定値は、<item-group> タグ レベルの設定値より優先されます。

サブ要素

なし

事前配信コンテンツの更新の設定

serveStopTime 属性と noRedirectToOrigin 属性を使用して、事前配信のコンテンツの更新を設定し管理するには、4 通りのマニフェスト ファイル設定が可能です。次の設定を行うことができます。

serveStopTime 属性と noRedirectToOrigin 属性の両方がマニフェスト ファイルに含まれていて、 noRedirectToOrigin 条件が true。 この最初のケースに対する条件は、 表 6-7 に記載されています。

serveStopTime 属性だけがマニフェスト ファイルに含まれていて、 noRedirectToOrigin 属性は含まれておらず、 noRedirectToOrigin 条件が false。 この 2 番目のケースに対する条件は、 表 6-8 に記載されています。

serveStopTime 属性も noRedirectToOrigin 属性もマニフェスト ファイルに含まれておらず、 noRedirectToOrigin 条件が false。 この 3 番目のケースに対する条件は、 表 6-9 に記載されています。

noRedirectToOrigin 属性だけがマニフェスト ファイルに含まれていて、 serveStopTime 属性は含まれておらず、 noRedirectToOrigin 条件が true。 この 4 番目のケースに対する条件は、 表 6-10 に記載されています。

serveStopTime 属性と noRedirectToOrigin 属性が含まれるかどうか、また serveStopTime 値と HTTP ヘッダー有効期限の時間の組み合せに応じた、条件とそれに対応する結果が 表 6-7 表 6-10 に記載されています。次の表では、「現在時刻」は、エンド ユーザの要求を受信する時間として定義されています。これらの表では、エンド ユーザ要求の受信時刻を使用して、コンテンツ配信を決定します。

 

表 6-7 serveStopTime と noRedirectToOrigin の両方の属性が含まれ、noRedirectToOrigin=true である場合

条件
結果

現在時刻が、 serveStopTime 値を過ぎている

コンテンツは配信されず、エラー メッセージが表示される

現在時刻が、 serveStopTime 値の前であるが、HTTP expires ヘッダーを過ぎている

コンテンツは CDNFS から配信されるが、コンテンツが古い場合がある

現在時刻が、 serveStopTime 値の前であり、HTTP expires ヘッダーの前である

コンテンツは CDNFS から配信される

現在時刻が、 serveStopTime 値の前であり、HTTP expires ヘッダーが存在しない

コンテンツは CDNFS から配信される

 

表 6-8 serveStopTime 属性だけが含まれ、noRedirectToOrigin=false である場合

条件
結果

現在時刻が、 serveStopTime 値を過ぎている

コンテンツは、オリジン サーバからプロキシによって配信される

現在時刻が、 serveStopTime 値の前であるが、HTTP expires ヘッダーを過ぎている

コンテンツは CDNFS から配信されるが、コンテンツが古い場合がある

現在時刻が、 serveStopTime 値の前であり、HTTP expires ヘッダーの前である

コンテンツは CDNFS から配信される

現在時刻が、 serveStopTime 値の前であり、HTTP expires ヘッダーが存在しない

コンテンツは CDNFS から配信される

表 6-9 serveStopTime と noRedirectToOrigin の両方の属性が含まれず、noRedirectToOrigin=true である場合

条件
結果

現在時刻が、HTTP expires ヘッダーを過ぎている

コンテンツは、オリジン サーバからプロキシによって配信される

現在時刻が、HTTP expires ヘッダーより前である

コンテンツは CDNFS から配信される

HTTP expires ヘッダーが存在しない

コンテンツは CDNFS から配信される

表 6-10 noRedirectToOrigin 属性だけが含まれ、noRedirectToOrigin=true である場合

条件
結果

現在時刻が、HTTP expires ヘッダーを過ぎている

コンテンツは CDNFS から配信されるが、コンテンツが古い場合がある

現在時刻が、HTTP expires ヘッダーより前である

コンテンツは CDNFS から配信される

HTTP expires ヘッダーが存在しない

コンテンツは CDNFS から配信される

XML スキーマ

マニフェスト ファイルの場合、XML スキーマによって、マニフェスト ファイルのカスタム マークアップ言語、および所定の 1 組の XML ドキュメントの外観が定義されます。XML スキーマが指定するのは、ドキュメントで使用できるタグまたは要素、それらのタグに含まれる属性、およびその配置などです。

マニフェスト XML スキーマ

XSD は、XML スキーマのコンポーネントを処理するための API(アプリケーション プログラミング インターフェイス)を提供するライブラリです。 XSD の詳細は、
http://www.w3schools.com/schema/schema_intro.asp
を参照してください。

次の XML コードは、マニフェスト XML スキーマ(CdnManfest.xsd) です。

[qiwzhang@qiwzhang-linux schema]$ cat CdnManifest.xsd
<?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:element ref="proxyServer" minOccurs="0" maxOccurs="unbounded"/>
<xs:choice minOccurs="0" 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="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:complexType>
</xs:element>
 
<xs:element name="options">
<xs:complexType>
<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="noRedirectToOrigin" type="xs:boolean" use="optional" default="false" />
<xs:attribute name="requireAuth" type="xs:boolean" use="optional"/>
<xs:attribute name="ttl" type="xs:unsignedInt" use="optional"/>
<xs:attribute name="prefetch" type="xs:string" use="optional"/>
<xs:attribute name="ttl-for-missing" type="xs:unsignedInt" use="optional"/>
<xs:attribute name="ttl-for-non-ref" type="xs:unsignedInt" use="optional"/>
<xs:attribute name="type" use="optional" default="prepos">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="prepos"/>
<xs:enumeration value="wmt-live"/>
<xs:enumeration value="real-live"/>
</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" default="false"/>
<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:element name="host">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="root" type="xs:string" use="optional"/>
<xs:attribute name="proxyServer" type="xs:string" 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="mms"/>
<xs:enumeration value="rtsp"/>
</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="uuencoded" type="xs:boolean" use="optional" default="false"/>
<xs:attribute name="proxyName" type="xs:string" 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:complexType>
</xs:element>
 
<xs:element name="proxyServer">
<xs:complexType>
<xs:attribute name="serverName" type="xs:string" use="required"/>
<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="uuencoded" type="xs:string" use="optional" default="false"/>
</xs:complexType>
</xs:element>
 
<xs:attributeGroup name = "contentAttr">
<xs:attribute name="server" type="xs:string" use="optional"/>
<xs:attribute name="proxyServer" 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="real-live"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="noRedirectToOrigin" type="xs:boolean" use="optional"/>
<xs:attribute name="requireAuth" type="xs:boolean" use="optional"/>
<xs:attribute name="alternateUrl" type="xs:string" use="optional"/>
<xs:attribute name="ttl" 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: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="http-meta-data" 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:complexType>
</xs:element>
 
<xs:element name="item">
<xs:complexType>
<xs:sequence>
<xs:element ref="contains" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="http-meta-data" 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:complexType>
</xs:element>
 
<xs:element name="crawler">
<xs:complexType>
<xs:all>
<xs:element ref="matchRule" minOccurs="0" maxOccurs="1"/>
<xs:element ref="http-meta-data" minOccurs="0" maxOccurs="1"/>
</xs:all>
<xs:attribute name="start-url" type="xs:string" use="required"/>
<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="max-size-in-B" type="xs:unsignedInt" use="optional"/>
<xs:attribute name="max-size-in-KB" type="xs:unsignedInt" use="optional"/>
<xs:attribute name="max-size-in-MB" type="xs:unsignedInt" use="optional"/>
<xs:attributeGroup ref="contentAttr"/>
<xs:attributeGroup ref="prefixAttr"/>
</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="size-min-in-B" type="xs:int" use="optional"/>
<xs:attribute name="size-max-in-B" type="xs:int" use="optional"/>
<xs:attribute name="size-min-in-KB" type="xs:int" use="optional"/>
<xs:attribute name="size-max-in-KB" type="xs:int" use="optional"/>
<xs:attribute name="size-min-in-MB" type="xs:int" use="optional"/>
<xs:attribute name="size-max-in-MB" type="xs:int" use="optional"/>
<xs:attribute name="extension" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
 
<xs:element name="http-meta-data">
<xs:complexType>
<xs:anyAttribute processContents="skip" />
</xs:complexType>
</xs:element>
<xs:complexType>
<xs:anyAttribute processContents="skip" />
</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="real"/>
<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 スキーマ(PlayServerTable.xsd) を定義します。

<?xml version="1.0"?>
 
<playServerTable xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation = "PlayServerTable.xsd">
 
<playServer name="real">
<!-- MIME type staken from
http://service.real.com/help/library/guides/server8/htmfiles/custmizg.htm
-->
<contentType name="audio/x-pn-realaudio" />
<contentType name="audio/x-pn-realaudio-plugin" />
<contentType name="application/x-pn-realmedia" />
<contentType name="application/smil" />
<contentType name="application/vnd.rn-rmadriver" />
<extension name="rm" />
<extension name="rms" />
<extension name="ra" />
<extension name="rp" />
<extension name="rt" />
<extension name="smi" />
</playServer>
 
<playServer name="qtss">
<contentType name="video/quicktime" />
<extension name="mov" />
<extension name="qt" />
<extension name="mp4" />
 
<!-- 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" />
 
<!-- comments courtesy of Laura Gaughan, 11jan2001 -->
<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>
 
<playServer name="http">
<contentType name="application/pdf" />
<contentType name="application/postscript" />
<extension name="pdf" />
<extension name="ps" />
 
<!-- this must be http; wmt doesn't do asx over mms -->
<contentType name="audio/x-ms-wax" />
<contentType name="video/x-ms-wvx" />
<contentType name="video/x-ms-wmx" />
<extension name="asx" /> <!-- as for wvx + .asf .asx (legacy) -->
<extension name="wax" /> <!-- metadata for .wma .wax -->
<extension name="wvx" /> <!-- metadata for .wma .wmv .wvx .wax -->
<extension name="wmx" /> <!-- reserved for future use -->
 
<!--
add all types from wmt tables to here, since they can be played
by http too.
 
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" />
 
<!-- comments courtesy of Laura Gaughan, 11jan2001 -->
<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>

マニフェスト ファイルの時間帯一覧

グリニッジ標準時(GMT)を現地時間に変換するには、標準時間と夏時間について、現地時間との時間差を知っておく必要があります。 表 6-11 表 6-26 では、マニフェスト ファイルでサポートされている時間帯を示します。時間帯を作成する形式は、次のとおりです。

<zonename> :[ + | - :]hh:mm(行ごと)

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

 

表 6-11 標準時間帯と 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:00

MDT:-:06:00

AST:-:09:00

Etc/GMT-11:+:11:00:00

MET:+:01:00

BET:-:03:00

Etc/GMT-12:+:12:00:00

MIT:-:11:00

BST:+:06:00

Etc/GMT-13:+:13:00:00

MST7MDT:-:07:00

CAT:+:02:00

Etc/GMT-14:+:14:00:00

MST:-:07:00

CDT:-:05:00

Etc/GMT-1:+:01:00:00

NET:+:04:00

CET:+:01:00

Etc/GMT-2:+:02:00:00

NST:+:12:00

CNT:-:03:30

Etc/GMT-3:+:03:00:00

NZ-CHAT:+:12:45

CST6CDT:-:06:00

Etc/GMT-4:+:04:00:00

NZ:+:12:00

CST:-:06:00

Etc/GMT-5:+:05:00:00

Navajo:-:07:00

CTT:+:08:00

Etc/GMT-6:+:06:00:00

PDT:-:07:00

EAT:+:03:00

Etc/GMT-7:+:07:00:00

PLT:+:05:00

ECT:+:01:00

Etc/GMT-8:+:08:00

PNT:-:07:00

EDT:-:04:00

Etc/GMT-9:+:09:00: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

 

表 6-12 アフリカの 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

 

表 6-13 アメリカの 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:00

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

 

表 6-14 南極大陸/北極地域の 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

 

表 6-15 アジアの 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

 

表 6-16 大西洋の 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

 

表 6-17 オーストラリアの 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

 

表 6-18 ブラジルの GMT からのオフセット

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

Brazil/Acre:-:05:00

Brazil/East:-:03:00

Brazil/West:-:04:00

Brazil/DeNoronha:-:02:00

 

表 6-19 カナダ/チリ/キューバの 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

 

表 6-20 エジプト/アイルランド/ヨーロッパの 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

 

表 6-21 香港/アイスランド/インド/イラン/イスラエルの 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

 

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

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

Jamaica:-:05:00

Kwajalein:+:12:00

Libya:+:02:00

Japan:+:09:00

 

表 6-23 メキシコ/中東の 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

 

表 6-24 太平洋/ポーランド/ポルトガルの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

 

表 6-25 シンガポール/システム 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

 

表 6-26 米国の 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

マニフェスト ファイルの自動化スクリプト

ここでは、自動化 Perl スクリプトについて説明します。この Perl スクリプトを使用すると、CDN 用のマニフェスト ファイルの作成を自動化することができます。マニフェスト ファイルを最も効率よく作成する方法は、自動化 Spider Perl スクリプトを Manifest Perl スクリプトと組み合せてカスタマイズすることです。どちらのスクリプトも、Cisco.com から入手できます。この 2 つの Perl スクリプトは、独自の自動化スクリプトのベースの役目をし、ユーザのニーズに合わせて変更できます。

シスコでは、 spider.pl manifest.pl と呼ばれる 2 つの Perl 自動化スクリプトを提供しています。これらのスクリプトは、そのまま使用することができます。Perl を使い慣れている場合は、 spider.pl manifest.pl を変更することもできます。しかし、これらのスクリプトはユーザが変更した場合、シスコのサポート対象外となります。 spider.pl manifest.pl の両方のスクリプトには、ユーザが作成したルール ファイル(たとえば、.cfg)と一緒に使用する「--file」引数が含まれています。これらの引数を再使用するために、コマンド行から引数を実行するのではなく、これから説明する方法を使用して、必要な種々の引数を組み込むことをお勧めします。

まず、Spider スクリプトを実行した後、Spider スクリプトの出力を Manifest スクリプトへの入力として使用します。Spider スクリプトは、選択されたオリジン サーバのコンテンツを検索し、すべてのコンテンツの URL のリストを含むデータベース ファイルを出力します。Manifest スクリプトは、このデータベース ファイルを使用して、コマンド行またはルール ファイルから指定される規則に基づく正しい構文で、マニフェスト ファイルを作成します。これにより、XML ベースのマニフェスト ファイルが作成され、このファイルにはユーザが使用できるコンテンツ オブジェクトだけの URL が含まれます。

次の 2 つのサンプル自動化 Perl スクリプトは、Cisco.com から入手可能です。

Spider Perl スクリプト

Spider スクリプトは、選択されたオリジン サーバのコンテンツをクロールし、URL のリストを含むデータベース ファイルを出力します。

Manifest Perl スクリプト

Manifest スクリプトは、Spider スクリプトによるデータベース ファイル出力を読み取り、XML 形式のマニフェスト ファイルを作成します。このファイルには、設定された規則を使用してフィルタ処理した、ユーザが使用できるコンテンツ オブジェクトだけの URL が含まれています。

ワークステーションへの Perl のインストール

Spider スクリプトまたは Manifest スクリプトを処理または実行する場合は、事前に Perl をワークステーションにインストールしておく必要があります。Perl インタープリターも入手しておくと便利です。Perl は、オープン ソース ソフトウェアであり、インターネット上のさまざまなロケーションから無料でダウンロードできます。次の CPAN(Comprehensive Perl Archive Network) を参照してください。

http://www.cpan.org
または
http://www.perl.com

Perl スクリプトの入手

Spider スクリプトおよび Manifest スクリプトは、Cisco ACNS ソフトウェアの更新版の入手と同じ手順を使用して、Cisco.com から入手できます。

Spider スクリプトおよび Manifest スクリプトを Cisco.com から入手する手順は、次のとおりです。


ステップ 1 次の URL にアクセスして、Spider および Manifest の Perl スクリプトを見つけます。

http://www.cisco.com/cgi-bin/tablebuild.pl/acns50

ステップ 2 プロンプトが表示されたら、指定されている Cisco.com のユーザ名とパスワードを使用して Cisco.com にログインします。

Cisco ACNS Software Download ページが表示され、Cisco ACNS Software 製品に利用可能なソフトウェア更新版が表示されます。

ステップ 3 ACNS-5.0.1-manifest-tools.zip という名前のファイルを見つけます。このファイルは、ZIP アーカイブで、Manifest と Spider の Perl スクリプトの両方が入っています。

ステップ 4 ACNS-5.0.1-manifest-tools.zip ファイルのリンクをクリックします。ダウンロード ページが表示されます。

ステップ 5 Software License Agreement をクリックします。

別のブラウザ ウィンドウが開き、使用許諾契約が表示されます。

ステップ 6 使用許諾契約を読んだ後、この契約を表示するブラウザ ウィンドウを閉じて、Software Download ページに戻ります。

ステップ 7 Download というファイル名のリンクをクリックします。

ステップ 8 Save to file をクリックした後、スクリプトが入っている Zip ファイルをワークステーションに一時的に保存するロケーションを選択します。

ステップ 9 任意の解凍プログラムを使用して、ワークステーションまたはネットワーク上のロケーションにスクリプトを解凍します。

スクリプトを解凍した後、それらのスクリプトを使用して、自分の Web サイト用のマニフェスト ファイルを作成できます。スクリプトの実行方法については、「Spider スクリプトを使用した Web サイト コンテンツのリスト」 および「Manifest スクリプトを使用したライブ コンテンツと事前配信コンテンツの選択」 を参照してください。


 

Spider スクリプトを使用した Web サイト コンテンツのリスト

最も単純なシナリオでは、Spider スクリプトには、オリジン サーバのアドレスを指定し、そのサイトで検出する有効な URL を入れるためのデータベース(.db) ファイルの名前を指定します。たとえば、マニフェスト ファイルの作成後に事前配信されるコンテンツがあるかどうか、www.cisco.com のコンテンツを分析する場合は、次のコマンドを実行します。

perl spider.pl --start=www.cisco.com --db=ciscocontent.db
 

Spider スクリプトの範囲の縮小または拡大

www.cisco.com 全体に Spider スクリプトを実行すると、時間がかかり、必要以上の情報が生成されます。Spider スクリプトに含まれているさまざまなツールを使用すると、Spider のアクションの範囲を縮小または拡大できます。


) 大規模な Web サイトに Spider スクリプトを実行する場合、Spider スクリプトでデータベースを作成するのに必要とする長い時間と大量のメモリについて計画する必要があります。


たとえば、Spider スクリプトによる www.cisco.com の検索範囲を、製品関連のサポート情報が含まれているサーバの部分だけに制限するには、次のコマンドを入力します。

perl spider.pl --start=www.cisco.com/public/support/ --db=ciscocontent.db
 

Spider スクリプトで www.cisco.com から Cisco ネットワーキング専門家フォーラムへのリンクをたどるようにするには、次の Spider スクリプト コマンドを入力します。

perl spider.pl --start=www.cisco.com --accept=business.cisco.com --db=ciscocontent.db
 

Spider スクリプト構文のガイドライン

Spider スクリプトは、次の構文に従っています( 表 6-27 を参照)。

perl spider.pl { --start= origin_server_url [ --accept= accept_url | --depth= number | --file= filename |
--limit= number | --prefix = url_prefix | --reject= disallowed_url | ] --db= database_name .db }

 

表 6-27 Spider スクリプトのキーワード

キーワード
説明
コマンド行構文

--start

分析対象のオリジン サーバのロケーション(URL) を指定します。

--start=www.cisco.com

--db

オリジン サーバ、および受け入れる任意のロケーションからのコンテンツ URL を入れるためのデータベース ファイルを指定します。

--db=ciscocontent.db

--accept
(オプション)

start キーワードを使用して指定されたものとは異なるロケーションで、URL で検出されるときに受け入れるものを指定します。

--accept=forums.cisco.com
 

) --accept は、正規表現を含めることができる、汎用性の高いコマンドです。たとえば、「jobs.*tech」を使用すると、ストリング「jobs」の後に「tech」が続く任意の URL を受け入れることができます。


 

--depth
(オプション)

オリジン サーバ上で指定したレベル数の深さまでリンクをたどった後に、Spider スクリプトを停止します。

--depth=6

--file
(オプション)

指定したファイル(この場合は、ルール ファイル)から一度に 1 行ずつコマンドを読み取ります。

--file=cisco-rules.cfg

--map
(オプション)

2 番目の = の後に指定されている URL プレフィックスをオリジン サーバから戻される最初の URL プレフィックスと置き換えます。また、たとえば、リンク先が Content Engine に変更された場合にオリジン サーバ上で Spider スクリプトを再実行する際に、最初の URL プレフィックスを 2 番目の URL プレフィックスと置き換えます。

--map= http://www.cisco.com/ public/support/
tac/=/support

--limit
(必須)

指定したページ数をオリジン サーバから取得した後に、Spider スクリプトを停止します。0 を指定すると、取得されるページ数が制限なしに設定されます。

--limit=1000

--prefix
(オプション)

Spider スクリプトに一致する URL プレフィックスを指定します。 --prefix キーワードは、先頭から一致させる必要がある URL の固定ストリング(たとえば、http://www.cisco.com/jobs)を指定するときに便利なオプションです。

--prefix= http://www.cisco.com/partners/CDN/

--reject
(オプション)

--reject=/cgi-bin

Spider スクリプトのカスタマイズ

Spider スクリプトは、ある特定のプラットフォームやシナリオで、ユーザの Web サイト設定に対応しない場合があるため、シスコでは、Spider スクリプト用の Perl ソース コードを提供しています。このソース コードは、必要に応じて変更が可能です。

Manifest スクリプトを使用したライブ コンテンツと事前配信コンテンツの選択

Spider スクリプトは、オリジン サーバからコンテンツ候補のリストを収集するために使用されます。一方、Manifest スクリプトは、Spider スクリプトによって収集された情報を選別して、Content Engine 上に配置するために CDN に実際にインポートするコンテンツを決定します。

事前配信コンテンツとライブ コンテンツとの違い

Manifest スクリプトは、事前配信するコンテンツと、定義上事前配信できないライブ ストリーム コンテンツとを区別します。

live コマンドを使用した結果は、prepos コマンドを使用した結果とほぼ同じです。 どちらのコマンドでも、ライブ コンテンツとして配信するもの、もしくは --prepos=match() または --prepos=type() を使用して事前配信コンテンツとして配信するものを指定する必要があります。この 2 つのコマンドの違いは、 manifest.pl によって作成される .xml ファイルに含まれるタグだけです。prepos コマンドを使用する場合、作成される .xml ファイルには、<item-group type="prepos"> タグが含まれます。live コマンドを使用する場合、 .xml ファイルには、ストリーミング データが RealMedia であるか WMT であるかに応じて、<item-group type="wmt-live"> タグまたは <item-group type="real-live"> タグが含まれます。

prepos コマンドを使用する場合は、指定する条件を満たすコンテンツを特定し、事前配信します。たとえば、Cisco.com から 1 メガバイトを超えるイメージ ファイルを事前配信するには、次のコマンドを入力します。

perl manifest.pl --prepos=’type(image/*) and size > 1000k’ --db=ciscocontent.db --xml=cisco.xml
 

live コマンドを使用する場合は、ライブ コンテンツの URL を特定します。事前配信コンテンツとは異なり、ライブ コンテンツは、ヘッダーに保存されている情報では特定できません。したがって、コンテンツの URL に含まれている情報だけに基づいて、ライブ コンテンツを見つける方法を考案する必要があります。たとえば、次のコマンドを使用すると、ストリーム コンテンツを特定できます。

perl manifest.pl --live=‘match(http://*)’

Manifest スクリプト構文のガイドライン

Manifest スクリプトは、次の構文に従っています( 表 6-28 を参照)。

perl manifest.pl {[ --file= filename | --live= keyword_comparison' | --prepos= keyword_comparison' | --set= attribute=value : keyword_comparison' | --playservertable= filename | --map= { origin_server_url_prefix = cdn_prefix }] --db= database_name .db --xml= manifest_file_name . xml }


) マニフェスト ファイルを Spider データベースから作成するには、少なくとも 1 つの --prepos または --live キーワードが必要です。これらのキーワードのどちらも使用しない場合、作成されるマニフェストは最小限のものとなり、コンテンツ URL は含まれません。


--prepos キーワードは、--type() または --match のどちらかとともに使用できます。これらは、実行する機能が異なります。--match() キーワードは、テキストを比較し、URL の名前に作用します。 たとえば、 a.jaypeg という名前の jpeg ファイルを呼び出すには、--match(*.jaypeg) キーワードを使用します。また、URL の名前で news を検出する場合にも --match() キーワードを使用します。次の例のように、--match() キーワードを使用することもできます。

perl manifest.pl -db=name.db --prepos==’match(*.jpg)’ -xml=xmlname.xml
 

--type() キーワードは、データベース ファイルで指定されたコンテンツと、Web サーバが戻すコンテンツ タイプ ヘッダーとの比較に使用します。このキーワードは、オブジェクトの MIME タイプをクライアントに通知します。 たとえば、 jpeg ファイルに *.jaypeg と指定した場合、Web サーバは Content-Type: image/jpeg を戻し、データベースに置きます。

--type() キーワードのその他の例には、次のものがあります。

--prepos=type(text/html)
--prepos=type(text/plain)
--prepos=type(application/pdf)
--prepos=type(image/gif)
--prepos=type(image/jpeg)
--prepos=type(video/mpeg)
 

次の 2 つの例では、完全なコマンド行で --type() キーワードを使用します。

perl manifest.pl --db=name.db --prepos=”type(image/jpeg)” -xml=xmlname.xml
perl manifest.pl --db=name2.db --prepos=”type(application/pdf)” xml=xmlname2.xml

ヒント 一般に、引用符を使用する必要があるのは、コマンド行だけです。ルール ファイルでは、--file キーワードに引用符を使用する必要はありません。


--prepos キーワードが完全なコマンド行で使用される場合は、次のように引用符が必要です。

Windows 2000

前記の例のように、一重引用符ではなく、二重引用符を使用する。

Linux

二重引用符ではなく、一重引用符を使用する。

次の rules.cfg ファイル例のように、ルール ファイル内で --prepos 引数が --file 引数と一緒に使用される場合、引用符は必要ないためそのファイルを変更できます。

--start=www.cisco.com
--accept=forums.cisco.com
--reject=/cgi-bin
--limit=0
--db=ciscocontent.db
--prepos=match(image/gif) and size > 1000k
--xml=ciscomanifest.xml
 

引用符がルール ファイル内から取り除かれていない場合、次のメッセージが表示されます。 Bareword found where operator expected

 

表 6-28 Manifest スクリプトのキーワード

キーワード
説明
コマンド行構文

--file
(必須)

指定したファイルからコマンドを一度に 1 行ずつ読み取ります。

--file=ciscocontent.cfg

--live
(必須)

データベース ファイル内のコンテンツ URL の中から、キーワードで比較した条件と一致しているコンテンツ URL を選び出し、マニフェスト ファイル内のライブ コンテンツ(live=type)として指定します。

 

--prepos
(必須)

--prepos=‘type(image/jpeg) and size > 1000k’

--set
(オプション)

キーワードで比較した条件と一致する、データベース ファイル内の URL をもつすべてのコンテンツ項目に対する値に、指定した属性を設定します。

--set=‘ttl=10000:match(*/urgent/*)’

--playservertable
(オプション)

指定したファイル内の再生サーバ テーブルをマニフェスト ファイルに追加します。再生サーバ テーブルは、MIME タイプ コンテンツとファイル名拡張子を特定のサーバ タイプ(たとえば、「real」や「wmt」)にマップし、そのコンテンツに対して特定の Content Engine で使用します。

マニフェスト ファイルを正しく検証するには、次の例のように、再生サーバ テーブル全体をマニフェスト ファイルの先頭に移動します。

<CdnManifest>
<playServerTable>
...
</playServerTable>
<server>
...
</server>
...
</CdnManifest>
--playservertable=info.txt

--map
(オプション)

2 番目の = の後にある URL プレフィックスをオリジン サーバから戻される URL の最初の URL プレフィックスと置き換えます。

2 番目の URL プレフィックスには、フルパス名が必要です。--map キーワードは、 manifest.pl を使用する .xml ファイル内の名前を変更するために使用します。 manifest.pl を実行する際に、 cdn-url 属性をもつ <item> タグを、要求された名前に設定する必要があります。

--map= http://www.cisco.com/public/support/
tac/=/support

--db
(必須)

オリジン サーバおよび受け入れる任意のロケーションからのコンテンツ URL を入れるデータベース ファイルを指定します。指定されたファイルには、Manifest スクリプトが解析に使用するデータが含まれています。

--db=ciscocontent.db

--xml
(必須)

Manifest スクリプトによって生成されるマニフェスト ファイル名を指定します。

--xml=ciscomanifest.xml

match
(比較)(必須)

指定した値と同じコンテンツ URL 内のテキストを検出します。

--prepos=‘match( http://forums.cisco.com/ *)’

size
(比較)(必須)

指定したファイル サイズ パラメータに従って、データベース ファイルで指定されたコンテンツを特定します。ファイル サイズ パラメータは、キロバイト、メガバイト、またはギガバイト(k、kb、m、mb、g、gb) で指定できます。

--prepos=match(*.gif) and size > 1000k

time
(比較)(必須)

コンテンツが最後に変更されてから経過した時間(時間数)に従って、データベース ファイルで指定されたコンテンツを特定します。


) ルール ファイル内で使用するかどうかにかかわらず、「hours」という語の前にスペースを使用しないでください。



) ルール --file 内で time() キーワードを使用する場合は、引用符を使用しないでください。


構文例では、「modtime」は「now」 - <value> と比較されます。ここで、「now」は現在の時刻です(1970 年以降の秒数)。<value> は、時間単位(時間数)です。たとえば、「modtime」が現在の時刻から 2 時間マイナスした時刻である場合、次のように表します。

modtime < (now - 2hours)

type
(比較)(必須)

MIME タイプ(テキスト、アプリケーション、イメージなど)に従って、データベース ファイルで指定されたコンテンツを特定します。

--prepos=‘type(image/gif)’

Manifest スクリプトのカスタマイズ

Manifest スクリプトは、ある特定のプラットフォームやシナリオで、ユーザ独自の Web サイト設定に対応しない場合があるため、シスコでは、Manifest スクリプト用の Perl ソース コードを提供しています。このソース コードは、必要に応じて変更できます。

Spider スクリプトと Manifest スクリプト用のルール ファイルの作成

大規模の Web サーバに対して Spider スクリプトと Manifest スクリプトを使用する場合、スクリプトに設定しなければならないパラメータとルールの数が多くなり、非常に複雑になる場合があります。この場合、カスタマイズしたルールをリストしたファイルを別に作成しておく方が便利です。ルールを適用するたびに長いコマンドを入力するのではなく、適用するルールを単にリスト上にポイントするだけです。

ルール ファイルを使用すると、Spider スクリプトと Manifest スクリプトの再実行が簡単になり、スクリプトが実行されるたびに同じコマンドを受け取ることが確実になります。さらに、Spider スクリプトと Manifest スクリプトの両方で、出力エラーを生成せず、同じコマンド ファイルを読み取ることができます。Spider スクリプトは、Manifest スクリプトに対するコマンドを単に無視します。逆の場合も同じです。

Spider スクリプトと Manifest スクリプトのルール ファイルを作成する手順は、次のとおりです。


ステップ 1 テキスト エディタを開きます。

ステップ 2 別々の行にコマンドを一度に 1 つずつ入力します。

ルール ファイルの各行は、1 つの引数としてスクリプトに送られます。次の例は、Cisco Web サイトのルール ファイルを示しています。

--start=www.cisco.com
--accept=forums.cisco.com
--reject=/cgi-bin
--limit=0
--db=ciscocontent.db
--prepos=match(image/gif) and size > 1000k
--xml=ciscomanifest.xml
 

ステップ 3 Spider スクリプトと Manifest スクリプトに関連付けたロケーションに、ファイルを保存します。

ステップ 4 file コマンドを使用して、ルール ファイルを使用する各スクリプトを実行します。次に例を示します。

perl spider.pl --file=cisco-rules.cfg
perl manifest.pl --file=cisco-rules.cfg