ディレクトリリストスタイルに表示されないほかのプラットフォームとのインタフェースを取ることができる「ユーザー定義の」発見的設定を作成できます。Batch アダプタには、ベースとなるパーサーが LIST コマンドの結果を正しく解析できるように、一連の発見的プロパティーを設定できるメカニズムがあります。これらのプロパティーについては、「FTP 発見的設定パラメータ」で説明しています。
独自のユーザー定義のディレクトリリストスタイルを作成するには、次の 2 つの方法があります。
独自の発見的設定ファイルを作成する: FtpHeuristics.cfg ファイルと同じ形式でスタイル名とパラメータを表示する独自のユーザー定義の発見的設定ファイルを作成できます。作成したファイルは、アプリケーションサーバーに配置します。設定ファイルの場所とスタイル名は、BatchFTP 設定プロパティーで指定します (「独自の発見的設定ファイルを作成する」を参照)。
FTP 発見的設定ファイルを変更する: FtpHeuristics.cfg ファイルを開き、ユーザー定義スタイルを追加して、ファイルを再パッケージ化できます。この方法では、JAR ファイルを解凍し、独自のスタイルを追加して、ファイルを再パッケージ化する必要があります (「FTP 発見的設定ファイルを変更する」を参照)。多くの場合、この方法は前述の方法より面倒です。
テキストエディタを使用して、目的のプラットフォームとのインタフェースを取るのに必要なプロパティー設定を含むユーザー定義設定ファイルを作成します。このためには、FtpHeuristics.cfg ファイルから作成するスタイル (プラットフォームのパラメータ設定) に似たセクション (スタイル) をコピーするか、「発見的設定ファイルの形式」に示された書式をコピーします。
ユーザー定義の設定をアプリケーションサーバー上の安全な場所に CFG ファイルとして保存します。
BatchFTP の環境プロパティーから「FTP」->「ユーザー定義の発見的設定ファイル」プロパティーを選択し、ユーザー定義の発見的設定ファイルの場所と名前を入力します (たとえば、C:\USER_DEFINED_HEURISTICS\UDH.cfg)。
BatchFTP のコネクティビティーマッププロパティーから「FTP」->「ユーザー定義のディレクトリリストスタイル」を選択し、ユーザー定義スタイルの名前を入力します (たとえば、MY AS400-UNIX)。指定できるユーザー定義スタイルは 1 つだけです。このスタイルは設定済みのディレクトリリストスタイルになり、「ディレクトリリストスタイル」プロパティーの値より優先されます。
この方法を使用して複数のユーザー定義スタイルを作成するには、ユーザー定義の設定ファイルにそれらのスタイルを追加し、各種の FTPBatch コンポーネントアダプタのそれぞれについて、コネクティビティーマッププロパティーに異なるユーザー定義スタイル名を入力します。
必要に応じて、複数のユーザー定義の設定ファイルを作成することもできますが、そのためには環境内に追加の BatchFTP 外部システムを作成する必要があります。この方法を選択した場合は、自動マップを適用する前に、環境コンポーネントをドラッグ&ドロップで正しい BatchFTP 外部システムにコピーする必要があります。
この方法を使用して独自のユーザー定義の発見的設定を作成する場合は、次の点に注意してください。
BatchFTP のコネクティビティーマッププロパティーである「ユーザー定義のディレクトリリストスタイル」は、「ディレクトリリストスタイル」プロパティーより優先されます。「ユーザー定義のディレクトリリストスタイル」が指定されている場合は、対応する BatchFTP アダプタ (OTD) の発見的設定として使用されます。適用される発見的スタイルとして「ディレクトリリストスタイル」プロパティーの値を使用するには、「ユーザー定義のディレクトリリストスタイル」プロパティーの値を空白のままにする必要があります。
「ユーザー定義のディレクトリリストスタイル」プロパティーの値を空白 (値なし) に設定すると、選択した「ディレクトリリストスタイル」プロパティーの値 (組み込みの発見的設定) が現在の有効なスタイルになります。
ユーザー定義の発見的設定ファイルは、実行時にアプリケーションサーバー上に存在し、配備されたアプリケーションが発見的設定パラメータにアクセスできるように適切なアクセス権設定を持っている必要があります。
「ユーザー定義のディレクトリリストスタイル」が指定されているが、「ユーザー定義の発見的設定ファイル」プロパティーの値が空白である場合や、関連付けられたユーザー定義の発見的設定ファイルにアクセスできないか、または対応するスタイル設定がこのファイルに含まれていない場合は、BatchFTP OTD によってエラーメッセージが生成されます。
「ユーザー定義のディレクトリリストスタイル」の値を設定すると、「ユーザー定義の発見的設定ファイル」プロパティーで指定された対応する発見的設定ファイルの読み込みがトリガーされます。発見的設定ファイルに変更を加えた場合は、「ユーザー定義の発見的設定ファイル」プロパティーを設定してから「ユーザー定義のディレクトリリストスタイル」を設定します。
FtpHeuristics.cfg ファイルを変更して、ユーザー定義の発見的設定スタイルを含めるには、次の手順に従います。
FtpHeuristics.cfg ファイルは、次の場所にある stcbatch.jar ファイルに含まれています。
<JavaCAPS6>\netbeans\usrdir\modules\ext\batcheway\ stcbatch.jar |
JavaCAPS6 は、Sun Java Composite Application Platform Suite のインストールディレクトリです。
stcbatch.jar を解凍し、FtpHeuristics.cfg ファイルを見つけます。
テキストエディタで FtpHeuristics.cfg を開き、ユーザー定義の発見的設定スタイルを追加します。
「ユーザー定義」セクション (またはその他のセクション) をコピーし、FtpHeuristics.cfg の末尾に貼り付けます。
コピーしたセクションと各プロパティーの名前をユーザー定義の名前または利用可能なリスト (「ユーザー定義 1」、「ユーザー定義 2」など) のいずれかに変更します。「発見的設定ファイルの形式」に示された例を参照してください。この例では、ユーザー定義の名前は MY AS400-UNIX です。ユーザー定義の名前を持つスタイルは 1 つしか指定できませんが、10 個の設定スタイルに「ユーザー定義 1 - 10」という名前を付けることができます。
新しいセクションのプロパティーを目的のプラットフォームに合わせて変更します。「FTP 発見的設定パラメータ」を参照してください。
追加のユーザー定義設定を作成するには、前述の手順 2 から 4 までを繰り返します。
更新された FtpHeuristics.cfg ファイルを含む stcbatch.jar ファイルを圧縮し、stcbatch.jar を元の場所にコピーします。
BatchFTP の設定マッププロパティーから「FTP」->「ユーザー定義」->「ディレクトリリストスタイル」を選択し、ユーザー定義スタイルの名前を入力します (たとえば、MY AS400-UNIX)。または、「ディレクトリリストスタイル」ドロップダウンリストから 10 個のユーザー定義プロパティーのいずれかを選択することもできます (「ユーザー定義の発見的ディレクトリリストスタイルの作成」を参照)。
設定変更は、この Netbeans IDE で構築および配備されたすべてのプロジェクトに適用されます。
この例には、2 つのユーザー定義スタイル (MY AS400-UNIX および UDH NT 4.0) が含まれています。
# # -------------------------------------------------------------------------- # Section: MY AS400-UNIX # -------------------------------------------------------------------------- # MY AS400-UNIX!Commands Supported By FTP Server!value=APPE%CWD%DELE%LIST%MKD%NOOP%PASS%QUIT%RETR%RNFR%RNTO %SITE%STOR%TYPE%USER!set=APPE%CWD%DELE%LIST%MKD%NOOP%PASS%QUIT%RETR %RNFR%RNTO%SITE%STOR%TYPE%USER MY AS400-UNIX!Header Lines To Skip!value=0!set=0 MY AS400-UNIX!Header Indication Regex Expression!value=!set= MY AS400-UNIX!Trailer Lines To Skip!value=0!set=0 MY AS400-UNIX!Trailer Indication Regex Expression!value=!set= MY AS400-UNIX!Directory Indication Regex Expression!value=!set= MY AS400-UNIX!File Link Real Data Available!value=No!set=No%Yes MY AS400-UNIX!File Link Indication Regex Expression!value=!set= MY AS400-UNIX!File Link Symbol Regex Expression!value=!set= MY AS400-UNIX!List Line Format!value=Fixed!set=Blank Delimited%Fixed MY AS400-UNIX!Valid File Line Minimum Position!value=52!set=52 MY AS400-UNIX!File Name Is Last Entity!value=Yes!set=No%Yes MY AS400-UNIX!File Name Position!value=52!set=52 MY AS400-UNIX!File Name Length!value=0!set=0 MY AS400-UNIX!File Extension Position!value=0!set=0 MY AS400-UNIX!File Extension Length!value=0!set=0 MY AS400-UNIX!File Size Verifiable!value=No!set=No%Yes MY AS400-UNIX!File Size Position!value=0!set=0 MY AS400-UNIX!File Size Length!value=0!set=0 MY AS400-UNIX!Special Envelope For Absolute Pathname!value=!set=’’ MY AS400-UNIX!Listing Directory Yields Absolute Pathnames!value=No!set=No%Yes MY AS400-UNIX!Absolute Pathname Delimiter Set!value=///!set=/// MY AS400-UNIX!Change Directory Before Listing!value=Yes!set=No%Yes MY AS400-UNIX!Directory Name Requires Terminator!value=No!set=No%Yes # # # -------------------------------------------------------------------------- # Section: UDH NT 4.0 # -------------------------------------------------------------------------- # UDH NT 4.0!Commands Supported By FTP Server!value=APPE%CWD%DELE%LIST%MKD%NOOP%PASS%QUIT%RETR%RNFR%RNTO%SITE% STOR%TYPE%USER!set=APPE%CWD%DELE%LIST%MKD%NOOP%PASS%QUIT%RETR%RNFR%RNTO%SITE% STOR%TYPE%USER UDH NT 4.0!Header Lines To Skip!value=0!set=0 UDH NT 4.0!Header Indication Regex Expression!value=!set= UDH NT 4.0!Trailer Lines To Skip!value=0!set=0 UDH NT 4.0!Trailer Indication Regex Expression!value=!set= UDH NT 4.0!Directory Indication Regex Expression!value=<DIR>!set=<DIR> UDH NT 4.0!File Link Real Data Available!value=No!set=No%Yes UDH NT 4.0!File Link Indication Regex Expression!value=\.lnk$!set=\.lnk$ UDH NT 4.0!File Link Symbol Regex Expression!value=!set= UDH NT 4.0!List Line Format!value=Blank Delimited!set=Blank Delimited%Fixed UDH NT 4.0!Valid File Line Minimum Position!value=4!set=4 UDH NT 4.0!File Name Is Last Entity!value=Yes!set=No%Yes UDH NT 4.0!File Name Position!value=4!set=4 UDH NT 4.0!File Name Length!value=0!set=0 UDH NT 4.0!File Extension Position!value=0!set=0 UDH NT 4.0!File Extension Length!value=0!set=0 UDH NT 4.0!File Size Verifiable!value=Yes!set=No%Yes UDH NT 4.0!File Size Position!value=3!set=3 UDH NT 4.0!File Size Length!value=0!set=0 UDH NT 4.0!Special Envelope For Absolute Pathname!value=!set= UDH NT 4.0!Listing Directory Yields Absolute Pathnames!value=No!set=No%Yes UDH NT 4.0!Absolute Pathname Delimiter Set!value=\\\\\\!set=\\\\\\ UDH NT 4.0!Change Directory Before Listing!value=No!set=No%Yes UDH NT 4.0!Directory Name Requires Terminator!value=No!set=No%Yes |
ここでは、FtpHeuristics.cfg ファイルに含まれる BatchFTP の発見的解決に関する設定パラメータについて説明します。BatchFTP 発見的設定ファイルである FtpHeuristics.cfg には、「プラットフォームの選択」に示されたプラットフォームのそれぞれについて、パラメータの完全なセットが含まれています。
FTP 発見的設定パラメータについては、表 33 で説明されています。具体例については、表 34 を参照してください。
表 33 FTP 発見的設定パラメータ
名前 |
説明 |
必要な値 |
---|---|---|
FTP サーバーでサポートされるコマンド |
説明 特定のホスト上の FTP サーバーがサポートするコマンドを指定します。 |
必要な値 リストから選択した 1 つ以上の FTP コマンド。 |
スキップするヘッダー行 |
後述の「ヘッダー指定正規表現」設定パラメータに従ってヘッダーとみなし、スキップする LIST コマンドの先頭行の数を指定します。 |
負でない整数。ヘッダーがない場合は 0 (ゼロ) を入力します。 具体例は、表 34 の「スキップするヘッダー行」を参照してください。 |
ヘッダー指定正規表現 |
LIST コマンドの出力からヘッダーを構成する行を識別するために使用される正規表現を指定します。ヘッダーとして宣言されたすべての行 (前述の「スキップするヘッダー行」を参照) は、この正規表現に一致する必要があります。 |
正規表現。デフォルトは、FTP サーバーのオペレーティングシステムによって異なります。LIST コマンドの出力に含まれるヘッダー行を識別する確実な方法がない場合は、このパラメータを未定義のままにしてください。 追加情報 正規表現 "^ *total" は、ヘッダーの各行が "total" で始まり、場合によってはその直前に空白が入ることを示します。具体例は、表 34 の「ヘッダー指定正規表現」を参照してください。 正規表現が定義されていない場合は、「スキップするヘッダー行」設定パラメータの値だけでヘッダーが判定されます。 |
スキップするトレーラ行 |
「トレーラ指定正規表現」に従ってトレーラとみなし、スキップする LIST コマンドの末尾行の数を指定します。 |
負でない整数。トレーラがない場合は 0 (ゼロ) を入力します。 |
トレーラ指定正規表現 |
LIST コマンドの出力からトレーラを構成する行を識別するために使用される正規表現を指定します。トレーラとして宣言されたすべての行 (「スキップするトレーラ行」を参照) は、この正規表現に一致する必要があります。 |
正規表現。LIST の出力に含まれるトレーラ行を識別する確実な方法がない場合は、このパラメータを未定義のままにします。 正規表現が定義されていない場合は、「スキップするトレーラ行」設定パラメータの値だけでトレーラが判定されます。 |
ディレクトリ指定正規表現 |
LIST コマンドの出力から外部ディレクトリを識別するために使用される正規表現を指定します。ディレクトリは取得できないため、ファイルリストから除外する必要があります。 |
正規表現。LIST の出力に含まれるディレクトリを識別する確実な方法がない場合は、このパラメータを未定義のままにします。 正規表現 "^ *d" は、小文字の "d" で始まる行がディレクトリを示し、場合によってはその直前に空白が入ることを指定します。具体例は、表 34 を参照してください。 |
ファイルリンクの実データが使用可能 |
FTP サーバーがファイルリンク (ファイルへのポインタ) 自体の内容ではなく実際のファイルのデータを返すオペレーティングシステムで、ファイルがファイルリンクである可能性があるかどうかを指定します。 |
「はい」または「いいえ」 |
ファイルリンク指定正規表現 |
LIST コマンドの出力から外部ファイルリンクを識別する正規表現を指定します。ファイルリンクは実際のファイルへのポインタで、LIST コマンドの出力では、通常何らかの視覚的な記号 (-> など) とファイル名の組み合わせによって示されます。返されるリストに含まれるリンク名だけが必要になります。 |
正規表現。LIST の出力に含まれるファイルリンクを識別する確実な方法がない場合は、このパラメータを未定義のままにします。 追加情報 正規表現 "^ *l" は、小文字の "l" で始まる行がファイルリンクを示し、場合によってはその直前に空白が入ることを指定します。具体例は、表 34 を参照してください。 |
ファイルリンク記号正規表現 |
LIST コマンドの出力に含まれる外部ファイルリンク名を解析する正規表現を指定します。返されるファイルリストのリンク名だけが必要になります。 |
正規表現。LIST の出力に含まれるファイルリンクを識別する確実な方法がない場合は、このパラメータを未定義のままにします。 正規表現 "[ ] ->[ ]" は、空白で囲まれた矢印 (" -> ") によってファイルリンク記号が表されることを定義します。解析時には、記号の右側にあるファイル名だけが使用されます。 表 34 の「ファイルリンク記号正規表現」の例では、"public_html" だけが使用され、文字 "p" は使用されません。 |
リスト行形式 |
各行のフィールドが空白区切りと固定のどちらであるか、つまり、情報が常に特定の桁に現れるかどうかを指定します。 |
「空白区切り」または「固定」。 「固定」リスト行形式の場合は、左端の桁を第 1 桁とした場合の桁数を表す値を入力します。「空白区切り」リスト行形式の場合は、左端のフィールドを第 1 フィールドとした場合のフィールド数を表す値を入力します。 どちらの場合も、最小数を決定できないときはこの値を 0 に設定します。 追加情報 表 34 の「リスト行形式」の例では、空白区切り行の最小フィールド数は 9 です。 |
有効なファイル行の最小位置数 |
リスト行を有効なファイル名行とみなすのに必要な位置の (内包的な) 最小数を指定します。 |
注 – URL FTP プロキシは、先頭の空白、末尾の空白、またはその両方を含むファイル名を確認できません。 |
ファイル名が最後のエンティティー |
ファイル名が各行の最後のエンティティーであるかどうかを指定します。これにより、ファイル名に空白を含めることができます。ただし、先頭または末尾の空白はサポートされません。 |
「はい」または「いいえ」 |
ファイル名の位置 |
ファイル名の (内包的な) 開始位置を指定します。 |
「固定」リスト行形式の場合は、左端の桁を第 1 桁とした場合の桁数を入力します。「空白区切り」リスト行形式の場合は、左端のフィールドを第 1 フィールドとした場合のフィールド数を入力します。 追加情報 「空白区切り」リスト行形式の場合のみ、ファイル名の途中に空白があると、ファイル名が複数のフィールドにまたがる可能性があります。具体例は、表 34 の「ファイル名の位置」を参照してください。 |
ファイル名の長さ |
ファイル名の最大長を表します。「固定」リスト行形式の場合にのみ有効です。 |
次のいずれかを入力します。
|
ファイル拡張子の位置 |
ファイル名拡張子をメインファイル名と切り離して表示するオペレーティングシステムについて、ファイル拡張子の左端の位置を指定します。 |
「固定」リスト行形式の場合は、左端の桁を第 1 桁とした場合の桁数を入力します。「空白区切り」リスト行形式の場合は、左端のフィールドを第 1 フィールドとした場合のフィールド数を入力します。UNIX システムのようにファイル拡張子が存在しない場合は、値をゼロ (0) に設定します。 |
ファイル拡張子の長さ |
ファイル拡張子の最大長を表します。「固定」リスト行形式の場合にのみ有効です。 |
次のいずれかを入力します。 |
ファイルサイズが検証可能 |
ファイルサイズがディレクトリリスト内で検証可能であり、有効であり、正確であるかどうかを指定します。 |
「はい」または「いいえ」「ファイルサイズ安定性チェック」設定可能パラメータも有効にする必要があります。 追加情報 リスト行のファイルサイズフィールドが有効でない (つまり、存在はするが、近似値しか表さない) 場合も、このパラメータの値を「いいえ」にする必要があります。ただし、リストのどの行が有効なファイル名を表すかを判定しやすくするには、「ファイルサイズの位置」でファイルサイズの位置も宣言する必要があります。具体例は、表 34 の「ファイルサイズが検証可能」を参照してください。 注 – このパラメータを使用しても、ファイルが実際に安定していることは保証されません。この機能は古い FTP 実装との下位互換性のみを目的としているため、重要なデータに対してこの機能を使用することはお勧めしません。 |
ファイルサイズの位置 |
リスト行のファイルサイズを表す位置の左端を指定します。一部のオペレーティングシステムでは、表示される値が実際のファイルサイズを反映しない場合もありますが、この位置は行に有効なファイル名が含まれていることを確認するために重要です。 |
負でない整数。「固定」リスト行形式の場合、この位置の値は左端を第 1 桁とした場合の桁数です。「空白区切り」リスト行形式の場合、この値は左端を第 1 フィールドとした場合のフィールド数です。LIST 行にサイズフィールドがない場合は、このパラメータをゼロ (0) に設定します。具体例は、表 34 の「ファイルサイズの位置」を参照してください。 |
ファイルサイズの長さ |
「固定」リスト行形式の場合に、ファイルサイズフィールドの最大幅 (桁数) を指定します。 |
負でない整数。「空白区切り」リスト行形式の場合は、この値をゼロ (0) に設定します。 |
絶対パス名の特殊エンベロープ |
絶対パス名を囲むのに必要な特殊エンベロープ文字 (たとえば、MVS で使用される単一引用符など) を指定します。単一引用符はディレクトリ名の先頭にのみ使用します。 |
エンベロープ文字のペア。先頭と末尾の文字が同じである場合も、2 回入力します。 オペレーティングシステムでエンベロープ文字が必要とされない場合は、このパラメータを未定義にします。 注 – UNIX では、このパラメータは常に未定義です。 |
ディレクトリリストに絶対パス名を表示 |
ディレクトリ名に対して DIR コマンドを使用したときに表示されるファイル名が絶対パス名かどうかを指定します。 |
「はい」または「いいえ」 注 – UNIX では、この文字は常に「いいえ」に設定されます。 |
絶対パス名の区切り文字セット |
ディレクトリ名またはそれに相当するものをほかのディレクトリ名やファイル名から切り離すために特定の区切り文字が必要な絶対パスを指定します。 |
次の絶対パスの区切り文字を左から順に入力します。
特定の区切り文字がない場合は、プレースホルダとして機能する "\0" (円記号とゼロ) を使用します。円記号からなる区切り文字は、もう 1 つの円記号でエスケープする必要があります。詳細は、表 35 を参照してください。 |
リスト取得前のディレクトリ移動 |
DIR コマンドを発行して目的のディレクトリに含まれるファイルのリストを取得する前に、ディレクトリ移動 (cd) コマンドを実行する必要があるかどうかを決定します。 |
「はい」または「いいえ」 注 – 現在の Batch アダプタの実装は、このパラメータを使用しません。 |
ディレクトリ名に終端文字が必要 |
ディレクトリ名の直後にファイル名が付かない場合に、(たとえば、MVS のように) 終端文字としてディレクトリの終わりを表す区切り文字が必要かどうかを決定します。 |
表 34 BatchFTP の発見的解決に関する設定パラメータの例
名前 |
例 |
|||
---|---|---|---|---|
スキップするヘッダー行 |
|
|||
ヘッダー指定正規表現 |
|
|||
ディレクトリ指定正規表現 |
|
|||
ファイルリンク指定正規表現 |
|
|||
ファイルリンク記号正規表現 |
|
|||
リスト行形式 |
|
|||
ディレクトリ指定正規表現 |
|
|||
ファイル名の位置 |
|
|||
ファイルサイズが検証可能 |
|
|||
ファイルサイズの位置 |
次のテキストは、ファイルサイズの有効な数値表現を表しています。
次のテキストは、ファイルサイズの無効な数値表現を表しています 。^ はエラーの発生箇所を示します。
|
表 35 プラットフォームごとの区切り文字とパス名の形式
OS |
パス名の形式 |
区切り文字セット | ||||
---|---|---|---|---|---|---|
1 |
2 |
3 |
4 |
Enter |
||
UNIX |
/dir1/dir2/file.ext |
/ |
/ |
/ |
/// |
|
Windows |
C:\dir1\dir2\file.ext |
\\ |
\\ |
\\ |
\\\\\\ |
|
VMS |
disk1:[dir1.dir2]file.ext;1 |
[ |
. |
] |
; |
[.]; |
MVS PDS |
dir1.dir2(メンバー) |
\0 |
. |
( |
) |
\0.() |
MVS Sequential |
dir1.dir2.filename |
\0 |
. |
. |
\0.. |
|
MVS GDG |
dir1.dir2.file(version#) (注を参照) |
\0 |
. |
. |
\0.. |
|
AS400 |
dir1/file.ext |
\0 |
/ |
. |
\0/. |
version# は、現在の世代が 0、新しい世代が +1、古い世代が -1 (-2、-3 など) です。