第10章 FTP または SFTP サーバーへの接続

インテグレーションでは、FTP または SFTP サーバーに接続して、ファイルをダウンロードまたはアップロードすることができます。これには、FTP または SFTP コネクションを作成し、インテグレーションフローに追加します。詳細は以下を参照してください。

10.1. FTP または SFTP コネクションの作成

インテグレーションで FTP または SFTP サーバーからファイルをダウンロードしたり、アップロードするには、その FTP または SFTP サーバーへのコネクションを作成します。同じコネクションを任意の数のインテグレーションに追加できます。

前提条件

接続するサーバーのホスト名を知っている必要があります。

手順

  1. Fuse Online の左パネルで Connections をクリックし、利用可能なコネクションを表示します。
  2. Create Connection をクリックし、Fuse Online コネクターを表示します。
  3. File Transfer Protocol (FTP) を使用するコネクションを作成する場合は、FTP コネクターをクリックします。

    Secure File Transfer Protocol (SFTP) を使用するコネクションを作成する場合は、SFTP コネクターをクリックします。

  4. コネクションを設定します。

    • FTP コネクションの場合は以下を行います。

      • 指定するパラメーターは Host のみです。接続するサーバーのホスト名を入力します。たとえば、FTP ホストの名前が FTP.WEST の場合、FTP.WEST をそのまま入力します。ftp://FTP.WEST のようにプロトコルは指定しないでください。
      • Port は必要なパラメーターで、デフォルト値は 21 になります。これは、FTP サーバーがリッスンするポートになります。
      • その他のパラメーターは、不必要であるかデフォルト値が指定されています。ほとんどのインテグレーションではデフォルトの値が適しています。これらのパラメーターの説明は、この手順の後に記載されています。
    • SFTP コネクションの場合は、以下のパラメーターに値が必要になります。

      • Host は、接続する SFTP サーバーのホスト名です。たとえば、SFTP ホストの名前が SFTP.EAST の場合、SFTP.EAST をそのまま入力します。sftp://SFTP.EAST のようにプロトコルは指定しないでください。
      • Port のデフォルト値は 22 になります。これは、SFTP サーバーがリッスンするポートになります。
      • User Name は SFTP サーバーへのアクセスに使用するアカウントのユーザー名です。
      • Password はそのユーザーに関連するパスワードです。
      • その他のパラメーターにはデフォルト値が指定されています。ほとんどのインテグレーションではデフォルトの値が適しています。これらのパラメーターの説明は、この手順の後に記載されています。
  5. Validate をクリックします。Fuse Online は即座にコネクションの検証を試み、検証の成功または失敗を示すメッセージを表示します。検証に失敗した場合は、必要に応じて設定の詳細を修正し、再度検証を行います。
  6. 検証に成功したら Next をクリックします。
  7. Name フィールドに、このコネクションを別のコネクションと区別するために使用する名前を入力します。たとえば、XLight FTP Server を入力します。
  8. Description は任意のフィールドで、このコネクションに関する便利な情報を入力します。
  9. Save をクリックし、作成したコネクションが利用可能になったことを確認します。上記の例の名前を入力した場合は、インテグレーションに追加できるコネクションとして XLight FTP Server が表示されます。

その他のパラメーターの説明

  • Connect timeout のデフォルト値は 10000 ミリ秒で、接続の確立まで最大 10 秒待機することを意味します。10 秒が経過しても接続が確立されなかった場合、Fuse Online は Reconnect delay で定義されたミリ秒間待機した後に、再接続を試みます。
  • Reconnect delay のデフォルト値は 1000 ミリ秒で、再接続を試みる前の待機時間を表します。
  • Maximum reconnect attempts のデフォルト値は 3 です。Fuse Online は接続の確立を最大 3 回試みます。
  • Binary file transfer mode がデフォルトで使用されます。転送モードを ASCII にする場合は No を選択します。
  • Passive connection mode のデフォルトは Yes で、これが通常の推奨モードになります。パッシブモードでは、ファイアウォールの問題を避けるために、クライアントがサーバーで通信チャネルを開きます。No を選択するとアクティブモードが使用されます。
  • Disconnect from the server after use のデフォルト値は No です。アクションの実行後、接続は維持されます。接続がアップロードまたはダウンロードを実行した後にサーバーから接続を切断する場合は Yes を選択します。
  • Data timeout のデフォルト値は 30000 ミリ秒で、Fuse Online が応答を待つ最大時間を示します。

10.2. FTP または SFTP サーバーからのファイルの取得

FTP または SFTP コネクションが対象のファイルを見つけたときにインテグレーションを実行するには、FTP または SFTP コネクションをインテグレーションの最初のコネクションとして追加します。

前提条件

FTP または SFTP コネクションが作成済みである必要があります。

手順

  1. Fuse Online パネルの左側にある Integrations をクリックします。
  2. Create Integration をクリックします。
  3. Choose a connection ページで、FTP または SFTP サーバーのポーリングに使用する FTP または SFTP コネクションをクリックします。
  4. Choose an action ページで Download を選択します。
  5. ファイルが 1 つの場合は、File name expression フィールドにファイル名に解決される Apache Camel Simple 言語 表現を入力します。正規表現を指定することはできません。コネクションはこのファイルを見つけるためにサーバーをポーリング (定期的に確認) し、見つかったらそのファイルをダウンロードします。複数のファイルをダウンロードする場合はこのフィールドを空白のままにしておきます。
  6. FTP directory フィールドに、ポーリングする server ディレクトリーの絶対または相対パスを入力します。コネクションは、このディレクトリーのコンテンツを確認し、コンテンツを見つけるとファイルをすべてダウンロードします。
  7. Milliseconds before polling starts フィールドでは、デフォルトの 1000 ミリ秒を使用するか、値を変更します。
  8. Milliseconds before the next poll フィールドでは、デフォルトの 500 ミリ秒を使用するか、値をミリ秒単位で変更します。これは、ポーリングの間隔になります。
  9. Delete after download フィールドでは、デフォルト値の No を使用するか、Yes を選択してファイルをダウンロードした後にサーバーから削除します。
  10. Next をクリックして、アクションの出力タイプを指定します。
  11. データタイプの認識が必要がない場合は、Select Type フィールドに Type specification not required を使用し、Next をクリックします。残りの手順を行う必要はありません。

    ただし、構造化データタイプが推奨されます。たとえば、コネクション出力をデータマッパーステップでマップする場合、データタイプを指定する必要があります。データマッパーは、非構造化データのフィールドを表示できません。

    データタイプを指定するには、Select Type フィールドをクリックし、以下の 1 つをスキーマタイプとして選択します。

    • JSON schema は JSON データの構造を記述するドキュメントです。ドキュメントのメディアタイプは application/schema+json です。
    • JSON instance は JSON データが含まれるドキュメントです。ドキュメントのメディアタイプは application/json です。
    • XML schema は XML データの構造を記述するドキュメントです。このドキュメントのファイル拡張子は .xsd です。
    • XML instance は XML データが含まれるドキュメントです。このドキュメントのファイル拡張子は .xml です。
  12. Definition 入力ボックスに、選択したスキーマタイプに準拠する定義を貼り付けます。たとえば、JSON schema を選択した場合は、メディアタイプが application/schema+json の JSON スキーマファイルの内容を貼り付けます。
  13. Data Type Name フィールドにはデータタイプに選択した名前を入力します。たとえば、ベンダーの JSON スキーマを指定する場合は、Vendor をデータタイプ名として指定することができます。

    このタイプを指定するコネクションを使用するインテグレーションを作成または編集するときにこのデータタイプ名が表示されます。Fuse Online では、インテグレーションビジュアライゼーションとデータマッパーにタイプ名が表示されます。

  14. Data Type Description フィールドには、このタイプを区別するのに便利な情報を提供します。データマッパーでこのタイプを処理するステップにカーソルを合わせると、この説明が表示されます。
  15. Next をクリックします。

結果

コネクションは、インテグレーションビジュアライゼーションの最初に表示されます。

10.3. FTP または SFTP サーバーへのファイルのアップロード

インテグレーションでは、フローの途中で FTP または SFTP サーバーへファイルをアップロードしたり、シンプルなインテグレーションを終了することができます。これには、FTP または SFTP コネクションをフローの途中に追加するか、シンプルなインテグレーションの最後のコネクションとして追加します。

前提条件

  • FTP または SFTP コネクションが作成済みである必要があります。
  • フローを作成または編集することになり、Fuse Online でインテグレーションに追加するよう要求されます。または、Fuse Online で最後のコネクションを選択するよう要求されます。

手順

  1. Add to Integration ページで、コネクションの追加先のプラス記号をクリックします。Fuse Online が最後のコネクションを選択するよう要求する場合は、このステップをスキップします。
  2. ファイルのアップロードに使用する FTP または SFTP コネクションをクリックします。
  3. Choose an action ページで Upload を選択します。
  4. 特定の 1 つのファイルのみをアップロードする場合は、File name expression フィールドにファイル名に解決される Apache Camel Simple 言語 表現を入力します。これは、アクションによってサーバーにアップロードされるファイルの名前になります。正規表現を指定することはできません。複数のファイルをアップロードする場合はこのフィールドを空白のままにしておきます。
  5. FTP directory フィールドには server ディレクトリーの絶対または相対名を入力します。File name expression フィールドに表現が含まれる場合、コネクションはこのディレクトリーに指定されたファイルを格納します。File name expression フィールドが空白である場合、コネクションは前のステップで取得したすべてのファイルをこのディレクトリーにアップロードします。
  6. If file exists フィールドには、サーバーのファイルと同じパスや名前を持つファイルをアップロードする場合に行う処置を示します。デフォルトの Override を使用してサーバー上のファイルをアップロードするファイルでオーバーライドするか、以下の 1 つを選択します。

    • Append は、アップロードするファイルの内容をサーバー上のファイルに追加します。
    • FailGenericFileOperationException をスローします。インテグレーションはエラー状態になりません。
    • Ignore はファイルをアップロードしません。インテグレーションは何も問題がないことを前提で実行を継続します。
    • Move は 1 つのファイルの名前を変更します。
    • TryRename は一時的な名前でファイルをアップロードし、希望のファイル名に変更します。この操作は、希望の名前を持つファイルの存在を確認しないため、既存ファイルのチェックを行う場合よりもほとんどのサーバーで操作が速くなります。
  7. Temporary file prefix while copying フィールドには、文字列を指定します。ファイルのアップロード中にこの文字列がファイル名の先頭に追加されます。これにより、コネクションはサーバー上で一時ファイルに書き込みを行い、その一時ファイルの名前を適切な名前に変更することが可能になります。これは、非常に大きなファイルをアップロードする場合にロックを減らすのに便利です。
  8. Temporary file name while copying フィールドには、文字列を指定します。ファイルのアップロード中にそのファイルの名前が変更されます。これにより、コネクションはサーバー上で一時ファイルに書き込みを行い、その一時ファイルの名前を適切な名前に変更することが可能になります。これは、非常に大きなファイルをアップロードする場合にロックを減らすのに便利です。
  9. Next をクリックしてアクションの入力タイプを指定します。
  10. データタイプの認識が必要がない場合は、Select Type フィールドに Type specification not required を使用し、Next をクリックします。残りの手順を行う必要はありません。

    ただし、構造化データタイプが推奨されます。たとえば、コネクション入力をデータマッパーステップでマップする場合、データタイプを指定する必要があります。データマッパーは、非構造化データのフィールドを表示できません。

    データタイプを指定するには、Select Type フィールドをクリックし、以下の 1 つをスキーマタイプとして選択します。

    • JSON schema は JSON データの構造を記述するドキュメントです。ドキュメントのメディアタイプは application/schema+json です。
    • JSON instance は JSON データが含まれるドキュメントです。ドキュメントのメディアタイプは application/json です。
    • XML schema は XML データの構造を記述するドキュメントです。このドキュメントのファイル拡張子は .xsd です。
    • XML instance は XML データが含まれるドキュメントです。このドキュメントのファイル拡張子は .xml です。
  11. Definition 入力ボックスに、選択したスキーマタイプに準拠する定義を貼り付けます。たとえば、JSON schema を選択した場合は、メディアタイプが application/schema+json の JSON スキーマファイルの内容を貼り付けます。
  12. Data Type Name フィールドにはデータタイプに選択した名前を入力します。たとえば、ベンダーの JSON スキーマを指定する場合は、Vendor をデータタイプ名として指定することができます。

    このタイプを指定するコネクションを使用するインテグレーションを作成または編集するときにこのデータタイプ名が表示されます。Fuse Online では、インテグレーションビジュアライゼーションとデータマッパーにタイプ名が表示されます。

  13. Data Type Description フィールドには、このタイプを区別するのに便利な情報を提供します。データマッパーでこのタイプを処理するステップにカーソルを合わせると、この説明が表示されます。
  14. Next をクリックします。

結果

インテグレーションビジュアライゼーションで追加した場所にコネクションが表示されます。