SFTP Connector を使用したファイルの読み取りの例

SFTP 用 Anypoint Connector (SFTP Connector) は、フローの任意の時点でファイルを読み取ることができます。Read 操作は、特定のパスのファイルを読み取り、次の属性が含まれる Mule メッセージを返します。

  • ペイロードとしてのファイルのコンテンツ

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

  • ファイルが存在しない場合、​SFTP:ILLEGAL_PATH​ エラーになる。

    この操作では、ディレクトリを読み取りません。

Studio で Read 操作を設定する

Studio で Read 操作を追加および設定する手順は、次のとおりです。

  1. [Mule Palette (Mule パレット)]​ ビューで「​sftp​」を検索し、​[Read]​ 操作を選択します。

  2. [Read]​ 操作を Studio キャンバスにドラッグします。

  3. 操作の設定画面の ​[General (一般)]​ タブで、​[Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (​+​) をクリックし、グローバル要素設定項目にアクセスします。

  4. 接続情報を指定し、​[OK]​ をクリックします。

  5. [General (一般)]​ タブで、​[File Path (ファイルパス)]​ 項目を、読み取るファイルのパスに設定します (例: #[path]​)。

  6. [Advanced (詳細)]​ タブで、​[MIME Type (MIME タイプ)]​ 項目を ​application/xml​、​[Encoding (エンコード)]​ 項目を ​ISO 10646/Unicode(UTF-8)​ に設定します。

次のスクリーンショットは、​Read​ 操作の設定を示しています。

Studio の Read 操作の設定
Figure 1. Read 操作の設定

XML エディターでは、​<sftp:read>​ 設定は次のように記述されます。

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

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

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

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

MIME タイプが重要な理由

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

ファイルロック

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

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

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

  • ファイルのコンテンツが完全に読み取られた

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

関連情報