ファイルコネクタを使用してファイルを読み取る方法

ファイルコネクタでは、Mule 3 とは異なりフローの任意の時点でファイルを読み取ることができます。Mule 3 では、インバウンドエンドポイントポーリングの結果としてのみトランスポートでファイルを読み取ることができます。

ファイルを読み取るための構文を次に示します。

<file:read path="#[path]"
  lock="true|false"
  outputEncoding="UTF-8"
  outputMimeType="application/csv; headers=false" />

上記の操作では、提供されたパスのファイルを読み取ります。これは、次の属性を持つ MuleMessage を返します。

  • ファイルの内容をペイロードとする。

  • ファイルのメタデータをメッセージ属性内に含む。

  • ファイルが存在しない場合、FILE:ILLEGAL_PATH エラーになる。この操作では、ディレクトリを読み取りません。

MIME タイプおよび文字コード

各コネクタはファイルの MIME タイプ (mimeType) をその拡張子から判別しようとします。ただし、ファイルの内容の実際の情報が必要な場合、outputMimeType パラメータを使用して MIME タイプを別の値に強制できます。

同じプロセスが文字コードでも機能します。デフォルトでは、コネクタは、Mule Runtime のデフォルトの文字コードがファイルの MIME タイプに一致するものとみなします。ただし、文字コードは outputEncoding パラメータで設定できます。

MIME タイプが重要な理由

ペイロードと他の値を生成する操作内に DataWeave 式を埋め込むことができます。適切な mimeType を設定することで、DataWeave は型を自動で割り当てることができるほか、適切な出力を生成できます。また、DataSense の機能を最大限活用することで、ユーザエクスペリエンスが向上します。

ファイルロック

lock パラメータを true に設定 (デフォルトは false) すると、ファイルの読み取り時にファイルに対してファイルシステムロックを設定できます。有効にすると、この機能はオペレーティングシステムにファイルをロックするように要求します。これにより、ロックが保持されている間、他のプロセス (または Mule フロー) は該当のファイルにアクセスできなくなります。次のいずれかの状況が発生した場合、ロックは自動的にリリースされます。

  • ファイルをロックしていた Mule フローが終了した。

  • ファイルの内容が完全に読み取られた。

ファイルが他のユーザによりすでにロックされている場合、コネクタはファイルをロックできず、FILE:FILE_LOCK エラーが表示されます。

反復可能ストリーム

List 操作では、Mule 4 で導入された反復可能ストリーム機能が使用されます。この操作ではメッセージのリストが返されます。各メッセージはリスト内のファイルを表し、ファイルへのストリームを保持します。デフォルトでは、ストリームは反復可能です。

このトピックについての詳細は、Mule 4 でのストリーミングを参照してください。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub