SFTP コネクタを使用したファイルの読み取り

Mule 3 でトランスポートがインバウンドエンドポイントポーリングの結果としてしかファイルを読み取れないのに対し、SFTP コネクタはフローのどの時点でもファイルを読み取ることができます。

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

<sftp:read path="#[path]"
  lock="true|false"
  outputEncoding="UTF-8"
  outputMimeType="application/xml" />

上記の操作では、提供されたパスのファイルを読み取ります。次のような属性が含まれる Mule メッセージ (MuleMessage) を返します。

  • ペイロードとしてのファイルの内容。

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

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

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

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

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

MIME タイプが重要な理由

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

ファイルロック

FTP または SFTP ではファイルレベルのロックができないため、同じ Mule アプリケーション内の他のフローからのみファイルを保護する Mule ロックを各操作で使用します。ファイルは外部システムからは保護されません。ただし、Mule アプリケーションがクラスタで実行されている場合、ロックは分散します。

次のいずれかの状況が発生した場合、ファイルロックは自動的にリリースされます。

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

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

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

反復可能ストリーム

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

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

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub