SFTP Connector を使用したファイルの書き込みの例 - Mule 4

SFTP 用 Anypoint Connector (SFTP Connector) の ​Write​ 操作では、コンテンツを特定のパスにオンデマンドで書き込みます。

Studio で Write 操作を設定する

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

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

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

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

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

  5. [General (一般)]​ タブで、​[Path (パス)]​ 項目を ​output.csv​ に設定し、書き込むファイルのパスを設定します。
    デフォルトでは、コネクタはメッセージペイロードに含まれるものをすべて書き込みます。

Studio の Write 操作の設定

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

<sftp:write path="output.csv" />

埋め込み DataWeave 変換の使用

Write​ 操作の前に ​[Transform Message (メッセージの変換)]​ コンポーネントを配置した場合、メッセージペイロードが変更され、​Write​ 操作の後に配置した操作に影響します。 そのため、ペイロードの形式が異なり、書き込む前に形式を変換する必要がある場合、​Write​ 操作の ​[Content (コンテンツ)]​ 項目内に変換を配置することで、送信中のメッセージに影響を与えずに、書き込まれるコンテンツを生成できます。

次の例では、DataWeave 変換を ​[Content (コンテンツ)]​ 項目に配置しています。

「Content (コンテンツ)」 項目が指定されている Studio の Write 操作

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

<sftp:write path="output.csv">
  <sftp:content>#[%dw 2.0
                   output application/csv
                   ---
                   payload.customers.email
                  ]
  </sftp:content>
</sftp:write>

ディレクトリへの書き込み

[Path (パス)]​ 項目で存在していないディレクトリを設定した場合、​Write​ 操作はデフォルトで失敗するため、​[Create parent directories (親ディレクトリを作成)]​ 項目を ​True (デフォルト)​ に設定して欠落しているディレクトリが自動的に作成されるようにしてください。

次の例は、​[Path (パス)]​ 項目で設定されている ​a​、​b​、​c​ ディレクトリのいずれかが存在しない場合、コネクタによって作成されることを示しています。

「Create parent directories (親ディレクトリを作成)」 が指定されている Write 操作の設定

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

<sftp:write path="a/b/c/myFile.txt" />

既存のファイルへの書き込み

コンテンツをファイルに書き込む場合、​[Write Mode (書き込みモード)]​ 項目を次のいずれかのモードに設定します。

  • OVERWRITE (デフォルト)
    ファイルが存在する場合、ファイルを完全に上書きします。

  • APPEND
    ファイルが存在する場合、コンテンツを既存のファイルの最後に追加します。

  • CREATE_NEW
    新しいファイルを作成します。ファイルがすでに存在する場合、エラーになります。

ロック

Write​ 操作では、​Read​ 操作に似たロックがサポートされます。主な違いは、​Write​ 操作の終了後にロックが自動的にリリースされることです。​[Lock (ロック)]​ 項目を次のいずれかのモードに設定します。

  • TRUE

  • FALSE (デフォルト)