FTPS Connector - Mule 3

サポートカテゴリ: Premium

FTPS 用 Anypoint Connector (FTPS Connector) を使用すると、FTPS 経由でファイルを送受信でき、Mule アプリケーションと FTPS サーバーとのシームレスなインテグレーションが提供されます。

このガイドを使用して、FTPS Connector を使用した基本的な Mule フローのセットアップおよび設定を行ってください。

リリースノート: FTPS Connector リリースノート
Exchange: FTPS Connector

前提条件

このドキュメントは、読者が FTPS、Mule、Anypoint Connector、Anypoint Studio、Mule フローの要素、グローバル要素に精通していることを前提としています。

ハードウェアおよびソフトウェアの要件

互換性

アプリケーションまたはサービス バージョン

Mule

3.7.0 以降

コネクタをインストールする

  1. Anypoint Studio で、Studio タスクバーの Exchange アイコンをクリックします。

  2. Anypoint Platform のログイン情報で Exchange にサインインします。

  3. Anypoint Exchange で ​[Provided by MuleSoft (MuleSoft による提供)]​ をクリックします。

  4. Mule 3 Connector を検索して ​[Install (インストール)]​ をクリックします。

FTPS Connector のグローバル要素を設定する

FTPS Connector のグローバル要素を設定し、アプリケーション内の複数の FTPS Connector インスタンスで使用できます。ただし、すべてのコネクタインスタンスが同じ要素または設定を使用するとは限りません。たとえば、フロー内の複数のコネクタが異なるグローバル要素や設定を使用して複数のインスタンスに接続する場合があります。

接続や他の詳細は、[Global Element Properties (グローバル要素のプロパティ)] ウィンドウで設定します。これらの設定は、グローバル要素に保存され、適切なコネクタインスタンスによって参照されます。

設定

この例では、プレースホルダーの値は、デフォルトではプロジェクトの ​src/main/resources​ フォルダーにある ​.properties​ ファイルに保存されている値を参照します。​「プロパティの設定」​を参照してください。

保守の容易さと再利用性を向上するには、FTPS Connector プロパティの値をグローバル要素にハードコード化するのではなく、FTPS Connector プロパティ用の ​.properties​ ファイルを使用する必要があります。 .properties​ ファイルを使用すると、アプリケーションをさまざまな環境 (本番、開発、QA など) にデプロイして、必要に応じてログイン情報を変更することができます。 「複数の環境へのデプロイ」​を参照してください。

FTPS Connector のグローバル要素プロパティ

項目 説明

Username (ユーザー名)

FTPS サーバーでのユーザー名。

サーバーで匿名ログインが許可される場合、ユーザー名として ​anonymous​ を使用できます。

Password (パスワード)

そのユーザー名のパスワード。

匿名ログインの場合、この項目は空にできます。

Host (ホスト)

FTPS サーバーのホストアドレス。

Port (ポート)

FTPS サービスが実行されているポート。

Keystore path (キーストアパス)

SSL で使用するキーストアへのパス。

Keystore password (キーストアパスワード)

キーストアファイルのパスワード。

Read timeout (読み取りタイムアウト)

コンシューマーがタイムアウトするまで応答を待機する時間 (ミリ秒)。

デフォルト値は 0 (無限) です。

Connection timeout (接続タイムアウト)

コンシューマーがタイムアウトするまで接続の確立を試みる時間 (ミリ秒)。

デフォルト値は 0 (無限) です。

Disable Certificate Validation (証明書検証の無効化)

SSL 証明書検証を無効にするためのオプション。証明書が無視されて ​Trust all​ ポリシーが使用されます。

このオプションはお勧めしません。

Encryption mode (暗号化モード)

クライアントセキュリティを呼び出すモード (IMPLICIT または EXPLICIT)。

Transfer mode (転送モード)

データ接続を確立するモード (PASSIVE または ACTIVE)。

Pooling Profile (プーリングプロファイル)

項目 説明 デフォルト値 必須

Max Active (最大アクティブ)

Number (数値)

一度にセッションから借りることができる Mule コンポーネントの数を制御します。負の値に設定した場合、同時にアクティブにできるコンポーネントの数に制限はありません。maxActive を超えた場合、プールは枯渇したと呼ばれます。

Max Idle (最大アイドル)

Number (数値)

プール内で同時にアイドル状態のままにできる Mule コンポーネントの最大数。負の値に設定した場合、同時にアイドルにできる Mule コンポーネントの数に制限はありません。

Max Wait (最大待機)

Number (数値)

プールが枯渇し、exhaustedAction が ​WHEN_EXHAUSTED_WAIT​ に設定されている場合に、プールされたコンポーネントが使用可能になるまで待機する時間 (ミリ秒) を指定します。

Min Eviction Millis (最小除去時間)

Number (数値)

オブジェクトが除去対象となるまでにオブジェクトをプール内でアイドル状態のままにできる最小時間を決定します。正の値以外の場合、アイドル時間のみによってオブジェクトがプールから削除されることはありません。

Eviction Check Interval Millis (除去確認間隔)

Number (数値)

オブジェクトエビクターの実行間隔 (ミリ秒) を指定します。正の値以外の場合、オブジェクトエビクターは実行されません。

Exhausted Action (枯渇アクション)

Enumeration (列挙)。次のいずれかになります。

  • WHEN_EXHAUSTED_GROW​

  • WHEN_EXHAUSTED_WAIT​

  • WHEN_EXHAUSTED_FAIL

Mule コンポーネントプールが枯渇した場合のプールの動作を指定します。可能な値:

  • WHEN_EXHAUSTED_FAIL​。NoSuchElementException をスローします。

  • WHEN_EXHAUSTED_WAIT​。新しいオブジェクトまたはアイドル状態のオブジェクトを使用できるようになるまで Object.wait(long) を呼び出してブロックします。

  • WHEN_EXHAUSTED_GROW​。新しい Mule インスタンスを作成して返すため、基本的に maxActive は無意味になります。正の maxWait 値を指定した場合、最大でその時間 (数ミリ秒) ブロックされた後、​NoSuchElementException​ がスローされます。maxThreadWait が負の値の場合、永久にブロックされます。

Initialisation Policy (初期化ポリシー)

Enumeration (列挙)。次のいずれかになります。

  • INITIALISE_NONE​

  • INITIALISE_ONE​

  • INITIALISE_ALL

プール内のコンポーネントの初期化方法を決定します。可能な値:

  • INITIALISE_NONE​。起動時にコンポーネントをプールに読み込みません。

  • INITIALISE_ONE​。起動時に初期コンポーネントをプールに読み込みます。

  • INITIALISE_ALL​。起動時にすべてのコンポーネントをプールに読み込みます。

Reconnection (再接続)

Mule Runtime Engine で接続の失敗を管理する方法を定義します。

項目 説明 デフォルト値 必須

Standard Reconnection (標準再接続)

使用する再接続戦略。

Standard Reconnection (標準再接続)

接続を再試行する回数と、再試行と再試行の間の時間を設定する再接続戦略。

項目 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Reconnection Attempts (再接続試行数)

Number (数値)

再接続の試行回数。

Run the reconnection in a separated thread (個別のスレッドで再接続を実行)

Boolean (ブール)

true の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

false

Reconnect Forever (繰り返し再接続)

指定間隔で無制限に再接続を試行する再接続戦略。

項目 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Run the reconnection in a separated thread (個別のスレッドで再接続を実行)

Boolean (ブール)

true の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

false

FTPS Connector の使用

FTPS Connector はエンドポイントの概念に基づいています。次のいずれかのグローバル要素を設定できます。

  • FTPS サーバーからファイルを読み取るためのインバウンドエンドポイント

  • FTPS サーバーにファイルをアップロードするためのアウトバウンドコネクタ

コネクタの名前空間とスキーマ

Anypoint Studio でパレットからキャンバスに FTPS Connector をドラッグすると、FTP Connector の名前空間とスキーマの場所が Mule アプリケーションの XML コードに自動的に入力されます。

名前空間:

xmlns:ftps="http://www.mulesoft.org/schema/mule/ftps"

スキーマの場所:

http://www.mulesoft.org/schema/mule/ftps http://www.mulesoft.org/schema/mule/ftps/current/mule-ftps.xsd

Studio の XML エディターまたは他のテキストエディターで Mule アプリケーションを手動でコーディングする場合、設定 XML のヘッダーの ​<mule>​ タグ内で名前空間およびスキーマの場所を定義します。

<mule xmlns="http://www.mulesoft.org/schema/mule/core"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:ftps="http://www.mulesoft.org/schema/mule/ftps"
      xsi:schemaLocation="
               http://www.mulesoft.org/schema/mule/core
               http://www.mulesoft.org/schema/mule/core/current/mule.xsd
               http://www.mulesoft.org/schema/mule/ftps
	       http://www.mulesoft.org/schema/mule/ftps/current/mule-ftps.xsd">

      <!-- put your global configuration elements and flows here -->

</mule>

Maven 対応の Mule アプリケーションでのコネクタの使用

Maven 対応の Mule アプリケーションをコーディングしている場合は、次の XML スニペットを ​pom.xml​ ファイルに含めます。

<dependency>
  <groupId>com.mulesoft.connectors</groupId>
  <artifactId>mule-ftps-transport</artifactId>
  <version>3.1.0</version>
</dependency>

<version>​ タグ内に現在のバージョン番号を入力します。現在のバージョンは 3.1.0 です。

FTPS Connector のユースケースの例

このユースケースの例は、Anypoint Studio ユーザーを対象とします。

XML でアプリケーションを設定している場合は、サンプル Mule アプリケーションの XML コードまでスキップし、各ユースケースの XML で FTPS グローバル要素とコネクタがどのように設定されているかを確認してください。

FTPS サーバーからのファイルの読み取りとファイルの内容のログ - Studio

Anypoint Studio を使用して FTPS サーバーからファイルを読み取る手順は、次のとおりです。

  1. Studio で、[File (ファイル)] → [New (新規)] → [Mule Project (Mule プロジェクト)] をクリックして、新しい Mule プロジェクトを作成します。

  2. プロジェクトを開いたまま、Studio パレットで ​​インストール済み​の FTPS Connector を検索します。

  3. 新しい FTPS Connector をキャンバスにドラッグします。

  4. Logger を FTPS 要素の後にドラッグして、受信メッセージのログをコンソールに記録します。

    読み取りフロー

  5. フローヘッダーをダブルクリックして、名前を ​read-flow​ に変更します。

    読み取りフローの設定

  6. FTPS Connector 要素をダブルクリックして、次のようにプロパティを設定します。

    項目 Value (値)

    Display Name (表示名)

    FTPS (Streaming) (FTPS (ストリーミング))

    Consumer Configuration (コンシューマー設定)

    FTPS_Basic_config​ (設定のデフォルト名)

    この値は、​​設定済み​の他の設定の名前に設定できます。

    操作

    Read

    Directory to move to (移動先ディレクトリ)

    サーバーからファイルを読み取った後のファイルの移動先のディレクトリ。

    空にした場合、ファイルは削除されます。

    File name (ファイル名)

    読み取るファイルのファイル名パターン。

    Maximum concurrent reads (最大同時読み取り数)

    ファイルを読み取るために使用するスレッド (接続) の数。

    ASCII Data Type (ASCII データ型)

    読み取るファイルが ASCII であるか BINARY であるか。

    デフォルトは BINARY です。

    ストリーミング

    InputStream をメッセージペイロードとして送信するか (true)、バイト配列として送信するか (false)。

    デフォルトは false です。

    Pooling period (プーリング期間)

    サーバーのファイルを照会する間隔。

    Read 操作

  7. ロガーを選択して、項目を次のように設定します。

    ロガー

  8. [Run As (別のユーザーとして実行)] > [Mule Application (Mule アプリケーション)] を選択し、アプリケーションを Studio から Mule Runtime Engine にデプロイします。

    ファイル名パターンと一致する新しいファイルが表示されると、そのコンテンツがコンソールに表示されます。

FTPS サーバーからのファイルの読み取り - XML

FTPS サーバーからファイルを読み取るには、FTPS Connector をコンシューマーとして使用して、Studio で生成された XML コードを使用する次のサンプル Mule アプリケーションを実行します。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking"
	xmlns:ftps="http://www.mulesoft.org/schema/mule/ftps"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:spring="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-current.xsd
	http://www.mulesoft.org/schema/mule/core
	http://www.mulesoft.org/schema/mule/core/current/mule.xsd
	http://www.mulesoft.org/schema/mule/ftps
	http://www.mulesoft.org/schema/mule/ftps/current/mule-ftps.xsd
	http://www.mulesoft.org/schema/mule/ee/tracking
	http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd">
    <ftps:config name="FTPS_Basic_Config" username="${username}" password="${password}"
    host="${host}" port="${port}" disableCertificateValidation="true" doc:name="FTPS: FTPS Basic Config"/>
    <flow name="read-flow">
        <ftps:read config-ref="FTPS_Basic_Config" fileName="test_read*" filesPath="/files"
	pollingPeriod="10000" doc:name="FTPS (Streaming)" isASCII="true"/>
        <logger message="#[payload]" level="INFO" doc:name="Logger"/>
    </flow>
</mule>

FTPS サーバーへのファイルの書き込み - Studio

FTP サーバーにファイルを書き込む手順は、次のとおりです。

  1. Studio で、[File (ファイル)] → [New (新規)] → [Mule Project (Mule プロジェクト)] をクリックして、新しい Mule プロジェクトを作成します。

  2. プロジェクト構造内を移動して、​src/main/app/project-name.xml​ をダブルクリックします。

  3. 新しい HTTP 要素をキャンバスにドラッグします。

    この要素はフローのエントリポイントであり、ファイルに書き込むデータを提供します。

  4. 新しい FTPS 要素を HTTP リスナーの後にドラッグます。

    書き込みフロー

  5. フローのヘッダー (青い行) をダブルクリックして、フローの名前を ​write-flow​ に変更します。

    書き込みフローの設定

  6. HTTP 要素を選択します。

  7. [Connector Configuration (コネクタ設定)] ドロップダウンの横にあるプラス記号をクリックします。

  8. 応答画面でデフォルト設定を受け入れて [OK] をクリックします。

  9. [Path (パス)] に ​write​ を設定します。

  10. FTPS Connector を選択して、プロパティを次のように設定します。

    Display Name (表示名) Write

    Consumer Configuration (コンシューマー設定)

    FTPS_Basic_config​ (設定のデフォルト名)

    この値は、​​設定済み​の他の設定の名前に設定できます。

    操作

    Write

    File Name (ファイル名)

    FTPS サーバーに作成するファイルの名前。

    File Path (ファイルパス)

    ファイルを作成する、FTPS サーバー上のパス。

    Input Reference (入力参照)

    指定したファイルに書き込むデータ。

    ASCII Data Type (ASCII データ型)

    書き込むファイルが ASCII であるか BINARY であるか。

    デフォルトは BINARY です。

    Append Contents (コンテンツを追加)

    操作に渡されたコンテンツを既存のファイルに追加する (true) かどうか。

    ストリーミング

    ファイルの内容をストリームとしてアップロードする (true) か、すべてを一度にアップロードする (false) か。

    Write 操作

  11. アプリケーションを起動し、作成した HTTP エンドポイントを呼び出して、FTPS サーバー上にファイルを作成します。

FTPS サーバーへのファイルの書き込み - XML

FTPS サーバーにファイルを書き込むには、FTPS Connector をメッセージパブリッシャーとして使用して、Studio で生成された XML コードを使用する次のサンプル Mule アプリケーションを実行します。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking"
	xmlns:ftps="http://www.mulesoft.org/schema/mule/ftps"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:spring="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-current.xsd
	http://www.mulesoft.org/schema/mule/core
	http://www.mulesoft.org/schema/mule/core/current/mule.xsd
	http://www.mulesoft.org/schema/mule/ftps
	http://www.mulesoft.org/schema/mule/ftps/current/mule-ftps.xsd
	http://www.mulesoft.org/schema/mule/ee/tracking
	http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd
	http://www.mulesoft.org/schema/mule/http
	http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd">
    <ftps:config name="FTPS_Basic_Config" username="${username}" password="${password}"
    host="${host}" port="${port}" disableCertificateValidation="true" doc:name="FTPS: FTPS Basic Config"/>
    <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081"
    doc:name="HTTP Listener Configuration"/>
    <flow name="write-flow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/>
        <ftps:write config-ref="FTPS_Basic_Config" fileName="test_read.txt"
	filePath="/files" input-ref="&quot;Test file content&quot;" doc:name="FTPS"/>
    </flow>
</mule>