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

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

1 秒あたりのトランザクション

次の表では、SFTP Connector の各バージョンの ​Read​ 操作の 1 秒あたりの合計要求数 (TPS) と平均成功 TPS を比較しています。

コネクタバージョン Mule Runtime Engine バージョン v1.6.1 の合計要求数 v2.0.1 の合計要求数 v1.6.1 の平均成功 TPS v2.0.0 の平均成功 TPS 非推奨 TPS パフォーマンスの割合

1.6.1 vs 2.0.0

4.4.1

301,377.40

247,614.40

1,674

1,375.60

-18

1.6.1 vs 2.0.0

4.5.0

326,915.80

247,296.20

1,816

1,374

-24

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

各コネクタはファイルの MIME タイプをその拡張子から判別しようとします。​MIME Type (MIME タイプ)​ (​outputMimeType​) パラメーターを使用して強制的に MIME タイプを別の値に変更できます。

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

MIME タイプが重要な理由

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

ファイルロック

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

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

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

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

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