FTP
ファイル転送プロトコル (FTP) は、コンピューター ネットワーク上のクライアントとサーバーの間でコンピューター ファイルを転送するために使用される標準的なネットワーク プロトコルです。 FTP はクライアント/サーバー モデル アーキテクチャ上に構築され、クライアントとサーバー間の個別の制御接続とデータ接続を使用します。
このコネクタは、次の製品とリージョンで使用できます。
| サービス | クラス | リージョン |
|---|---|---|
| コピロット スタジオ | Standard | 次を除くすべての Power Automate リージョン : - 米国政府 (GCC High) - 米国国防総省 (DoD) |
| ロジック アプリ | Standard | すべての Logic Apps リージョン |
| Power Apps | Standard | 次を除くすべての Power Apps リージョン : - 米国政府 (GCC High) - 米国国防総省 (DoD) |
| Power Automate | Standard | 次を除くすべての Power Automate リージョン : - 米国政府 (GCC High) - 米国国防総省 (DoD) |
| コネクタ メタデータ | |
|---|---|
| Publisher | Microsoft |
既知の問題と制限事項
この記事では、Azure Logic Apps、Power Automate、Power Apps で使用できる FTP マネージド コネクタの操作について説明します。 FTP 組み込み コネクタは、Azure Logic Apps の標準ロジック アプリ ワークフローでのみ使用できます。 Azure Logic Apps の FTP 組み込みコネクタの詳細については、Azure Logic Apps の ワークフローから FTP サーバーへの接続に関するページを参照してください。
FTP トリガーは、ファイルコンテンツではなくメタデータまたはプロパティのみを返すようになりました。 ただし、 ファイル コンテンツの取得という名前のアクションを使用して、これらのトリガーに従うことができます。 トリガーが一覧ではなく一度に 1 つのファイルを返すようにするには、必ずトリガーの [分割オン] オプションを有効にします。 Azure Logic Apps のこのオプションの詳細については、「複数の 実行のトリガー」を参照してください。
FTP トリガーは、サブフォルダーではなく、指定したフォルダーでのみ機能します。 フォルダーのサブフォルダーも確認するには、サブフォルダーごとに個別のフローを設定します。
既定では、FTP マネージド コネクタ アクションは 、50 MB 以下のファイルの読み取りまたは書き込みを行うことができます。 50 MB を超えるファイルを処理するには、メッセージ チャンクを暗黙的に使用するファイル コンテンツの取得という名前の FTP マネージド コネクタ アクションを使用できます。 その他の FTP マネージド コネクタ アクションでは、 メッセージ チャンクの有効化もサポートされています。
FTP トリガーでは、新しく作成、追加、または更新されたファイルを返すときに、遅延や不完全な結果が発生する可能性があります。
FTP トリガーは、新しく追加または変更されたファイルを確認すると、ファイルが完了していることも確認します。 たとえば、トリガーが FTP サーバーをチェックするときに、ファイルの変更が進行中である可能性があります。 不完全なファイルが返されないようにするために、トリガーはファイルのタイムスタンプを記録しますが、すぐにはファイルを返しません。 代わりに、トリガーは、トリガーがサーバーをもう一度チェックする場合にのみ、ファイルを返します。 この動作により、トリガーのポーリング間隔の最大 2 倍の遅延が発生することがあります。 この動作により、FTP トリガーの 分割オン 設定を無効にした場合、FTP トリガーはすべてのファイルを同時に返さない場合があります。
FTP マネージド コネクタ トリガーでは、"最終変更" タイムスタンプが保持されると、結果が不足、不完全、または遅延する可能性があります。
欠落している結果
FTP トリガーは、FTP ファイル システムをポーリングまたはチェックし、前回のポーリング以降に変更されたファイルを探すことによって機能します。 FTP マネージド コネクタ トリガーは、ファイルの最後に変更されたタイムスタンプを使用してファイルのバージョンを比較します。
現在追跡されている最後に変更されたタイムスタンプより前のタイムスタンプでファイルを作成、追加、または更新した場合、FTP マネージド コネクタ トリガーはこのファイルを検出しません。 一方、FTP 組み込み 標準ロジック アプリ ワークフローのコネクタ トリガーには、この制限はありません。
そのため、FTP サーバー上でファイルを作成、追加、または更新する外部ツールまたはクライアントを使用する場合は、ファイルの最終変更タイムスタンプを保持するツールまたはクライアントの機能を無効にしてください。
次の表に、このタイムスタンプを保持する一般的に使用されるツールと、この機能を無効にする手順を示します。
FTP クライアント アクション WinSCP [オプション>Preferences>Transfer>Edit>Preserve timestamp>Disable に移動します。 FileZilla 転送>転送されたファイルのタイムスタンプ>Disable に移動します。 不完全または遅延した結果
FTP トリガーは、新しく作成、追加、または更新されたファイルをチェックするときに、ファイルが完了したかどうかもチェックします。 たとえば、トリガーが FTP サーバーをチェックするときに、ファイルの変更が進行中である可能性があります。 不完全なファイルが返されないようにするために、トリガーはファイルのタイムスタンプを記録しますが、すぐにはファイルを返しません。 代わりに、トリガーは、トリガーがサーバーをもう一度チェックする場合にのみ、ファイルを返します。
場合によっては、この動作により、トリガーのポーリング間隔のほぼ 2 倍の遅延が発生することがあります。 この動作により、FTP トリガーの 分割オン 設定を無効にした場合、FTP トリガーはすべてのファイルを同時に返さない可能性があります。
Requirements
FTP コネクタには、FTP ホスト サーバーのアドレスとアカウントの資格情報が必要です。
FTP コネクタは、インターネットから、またはインターネット経由で FTP サーバーにアクセスする必要があります。 特定の IP 範囲を使用して FTP サーバーへのトラフィックを許可する方法の詳細については、 マネージド コネクタの IP アドレスを確認してください。
FTP コネクタでは、FTP サーバーを パッシブ モードで動作または受け入れる必要があります。
FTP コネクタでは、FTP サーバーで次のコマンドを有効にし、コマンドが正しく機能するように空白を含むフォルダーをサポートする必要があります。 LIST コマンドの場合は、6 か月より前のファイル タイムスタンプの
yearコンポーネントがコマンドから返されていることを確認します。- APPE
- DELE
- リスト
- MDTM
- RENAME
- RETR
- 大きさ
- STOR
セキュリティで保護された FTP の場合は、暗黙的な FTPS ではなく 、明示的な ファイル転送プロトコル Secure (FTPS) を設定してください。 また、ProFTPd などの一部の FTP サーバーでは、Secure Socket Layer (SSL) の後継であるトランスポート層セキュリティ (TLS) モードを使用する場合、
NoSessionReuseRequiredオプションを有効にする必要があります。FTP コネクタは暗黙的な FTPS では機能せず、TLS の拡張機能である FTPS 経由の 明示的な FTP のみをサポートします。
FTP 接続
FTP コネクタと FTP サーバーの両方のパフォーマンスを向上させるために、コネクタが要求を完了した後も、FTP 接続を開いたままアクティブにしておくことができます。
FTP サーバーへの接続を作成すると、表示される接続プロファイル ボックスには、 要求の完了後に接続を閉じるという名前の設定が表示されます。 この設定では、要求が完了するたびに FTP サーバー接続を閉じるかどうかを指定します。 この設定を無効のままにすると、要求が完了した後も接続は閉じず、今後の使用のためにアクティブな状態が維持されます。
ワークフロー インスタンスが並列で実行されている場合は、断続的な接続エラーが発生する可能性があります。 ワークフロー内の一部の操作は、ワークフロー内の他の操作がまだその接続を使用している間でも、強制的に接続を閉じる可能性があります。
このシナリオを回避するには、次の推奨事項を試してください。
接続を作成するときに、[ 要求完了後に接続を閉じる] 設定を有効にします。
トリガーまたはアクションで有効になっている並列化またはコンカレンシーをオフにします。 Azure Logic Apps でのこのソリューションの詳細については、次のドキュメントを参照してください。
複数の並列フローを実行しないでください。
チャンクありまたはチャンクなしの "ファイルの作成" アクションを使用する
[ファイルの作成] アクションの動作は、アクションの [チャンクの許可] 設定と作成するファイルのサイズによって異なります。
チャンクを有効にする :
ファイル サイズが 50 MB 以下: アクションは、1 つの要求でファイルをアップロードし、元のファイル名を使用して、アップロード中にファイルをロックします。
ファイル サイズが 50 MB を超えています。このアクションでは、名前の形式であるファイル名を使用してファイルが作成されます。new-GUID.ms.partial。複数の要求またはメッセージ チャンクを使用してファイルをアップロードします。 アクションが最後のチャンクをアップロードすると、元のファイル名でファイルの名前が変更されます。
チャンクを無効にする : アクションは、1 つの要求でファイルをアップロードし、元のファイル名を使用して、アップロード中にファイルをロックします。
コネクタのハウツー ガイド
Azure Logic Apps で FTP マネージド コネクタと組み込みコネクタを使用する方法については、「Azure Logic Apps の ワークフローから FTP サーバーに接続する」を参照してください。
一般的な制限
| 名前 | 価値 |
|---|---|
| 1 つのアーカイブ内のフォルダーの最大数。 この制限は、'フォルダーを作成しますか?' の場合にのみ適用されます。 が 'Yes' に設定されています。 | 16 |
| 帯域幅の時間間隔内でコネクタとの間で転送される最大メガバイト数 (接続ごと) | 1000 |
| 帯域幅の時間間隔 (ミリ秒単位) | 60000 |
接続を作成する
コネクタでは、次の認証の種類がサポートされています。
| デフォルト | 接続を作成するためのパラメーター。 | すべてのリージョン | 共有不可 |
デフォルト
適用対象: すべてのリージョン
接続を作成するためのパラメーター。
これは共有可能な接続ではありません。 電源アプリが別のユーザーと共有されている場合、別のユーザーは新しい接続を明示的に作成するように求められます。
| 名前 | タイプ | Description | 必須 |
|---|---|---|---|
| サーバー アドレス | 文字列 | サーバー アドレス | 正しい |
| ユーザー名 | 文字列 | ユーザー名 | 正しい |
| パスワード | securestring | パスワード | 正しい |
| FTP サーバー ポート | 整数 (int) | FTP ポート番号 (例: 21) | |
| SSL を有効にする | ブール (bool) | SSL を有効にする (True/False) | |
| バイナリトランスポート? | ブール (bool) | バイナリ トランスポートを有効にする (True/False) | |
| 証明書の検証を無効にする | ブール (bool) | 証明書の検証を無効にする (True/False) | |
| 要求の完了後に接続を閉じる | ブール (bool) | 要求が完了するたびに FTP 接続を閉じますか? (True/False) |
調整制限
| 名前 | 呼び出し | 更新期間 |
|---|---|---|
| 接続ごとの API 呼び出し | 900 | 60 秒 |
アクション
| パスを使用してファイル メタデータを取得する |
この操作では、ファイル パスを使用してファイルのメタデータを取得します。 |
| パスを使用してファイルコンテンツを取得する |
この操作では、ファイル パスを使用してファイルの内容を取得します。 |
| ファイル コンテンツの取得 |
この操作は、ファイルの内容を取得します。 |
| ファイルのコピー |
この操作により、ファイルが FTP サーバーにコピーされます。 ファイルがコピーされた直後にサーバー上で削除または名前変更されている場合、コネクタは設計上 HTTP 404 エラーを返す可能性があります。 新しく作成されたファイルを削除または名前変更する前に、1 分間の遅延を使用してください。 |
| ファイルのメタデータを取得する |
この操作では、ファイルのメタデータを取得します。 |
| ファイルを作成する |
この操作により、ファイルが作成されます。 ファイルが作成された直後にサーバー上で削除または名前変更されている場合、コネクタは設計上 HTTP 404 エラーを返す可能性があります。 新しく作成されたファイルを削除または名前変更する前に、1 分間の遅延を使用してください。 |
| ファイルを削除する |
この操作により、ファイルが削除されます。 |
| ファイルを更新する |
この操作では、ファイルが更新されます。 ファイルが更新された直後にサーバー上で削除または名前変更されている場合、コネクタは設計上 HTTP 404 エラーを返す可能性があります。 最近更新されたファイルを削除または名前変更する前に、1 分間の遅延を使用してください。 |
| フォルダーへのアーカイブの抽出 |
この操作により、アーカイブ ファイルがフォルダー (例: .zip) に抽出されます。 |
| フォルダー内のファイルを一覧表示する |
この操作では、フォルダー内のファイルとサブフォルダーの一覧を取得します。 |
| ルート フォルダー内のファイルを一覧表示する |
この操作では、ルート フォルダー内のファイルとサブフォルダーの一覧を取得します。 |
パスを使用してファイル メタデータを取得する
この操作では、ファイル パスを使用してファイルのメタデータを取得します。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
ファイルパス
|
path | True | string |
ファイルを選択する |
戻り値
BLOB のメタデータ
- Body
- BlobMetadata
パスを使用してファイルコンテンツを取得する
この操作では、ファイル パスを使用してファイルの内容を取得します。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
ファイルパス
|
path | True | string |
ファイルを選択する |
|
コンテンツ タイプの推論
|
inferContentType | boolean |
拡張機能に基づいてコンテンツ タイプを推論する |
戻り値
ファイルの内容。
- ファイル コンテンツ
- binary
ファイル コンテンツの取得
この操作は、ファイルの内容を取得します。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
File
|
id | True | string |
ファイルを選択する |
|
コンテンツ タイプの推論
|
inferContentType | boolean |
拡張機能に基づいてコンテンツ タイプを推論する |
戻り値
ファイルの内容。
- ファイル コンテンツ
- binary
ファイルのコピー
この操作により、ファイルが FTP サーバーにコピーされます。 ファイルがコピーされた直後にサーバー上で削除または名前変更されている場合、コネクタは設計上 HTTP 404 エラーを返す可能性があります。 新しく作成されたファイルを削除または名前変更する前に、1 分間の遅延を使用してください。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
ソース URL
|
source | True | string |
ソース ファイルの URL |
|
変換先ファイルのパス
|
destination | True | string |
ターゲット ファイル名を含む宛先ファイル パス |
|
上書き。
|
overwrite | boolean |
'true' に設定されている場合、コピー先ファイルを上書きします。 |
戻り値
BLOB のメタデータ
- Body
- BlobMetadata
ファイルのメタデータを取得する
この操作では、ファイルのメタデータを取得します。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
File
|
id | True | string |
ファイルを選択する |
戻り値
BLOB のメタデータ
- Body
- BlobMetadata
ファイルを作成する
この操作により、ファイルが作成されます。 ファイルが作成された直後にサーバー上で削除または名前変更されている場合、コネクタは設計上 HTTP 404 エラーを返す可能性があります。 新しく作成されたファイルを削除または名前変更する前に、1 分間の遅延を使用してください。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
フォルダー パス
|
folderPath | True | string |
フォルダーを選択する |
|
ファイル名
|
name | True | string |
ファイルの名前 |
|
ファイル コンテンツ
|
body | True | binary |
ファイルの内容 |
|
すべてのファイル メタデータを取得する
|
ReadFileMetadataFromServer | boolean |
ファイルの作成が完了した後、SFTP サーバーからすべてのファイル メタデータを取得します。 これが false の場合、最終変更時刻など、一部のメタデータ プロパティが返されない場合があります。 |
戻り値
BLOB のメタデータ
- Body
- BlobMetadata
ファイルを削除する
この操作により、ファイルが削除されます。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
File
|
id | True | string |
ファイルを選択する |
ファイルを更新する
この操作では、ファイルが更新されます。 ファイルが更新された直後にサーバー上で削除または名前変更されている場合、コネクタは設計上 HTTP 404 エラーを返す可能性があります。 最近更新されたファイルを削除または名前変更する前に、1 分間の遅延を使用してください。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
File
|
id | True | string |
ファイルを選択する |
|
ファイル コンテンツ
|
body | True | binary |
ファイルの内容 |
戻り値
BLOB のメタデータ
- Body
- BlobMetadata
フォルダーへのアーカイブの抽出
この操作により、アーカイブ ファイルがフォルダー (例: .zip) に抽出されます。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
ソース アーカイブ ファイルのパス
|
source | True | string |
アーカイブ ファイルへのパス |
|
コピー先フォルダーのパス
|
destination | True | string |
コピー先フォルダーへのパス |
|
上書き。
|
overwrite | boolean |
'true' に設定されている場合、コピー先ファイルを上書きします。 |
|
|
フォルダーを作成しますか?
|
createFolders | boolean |
'true' に設定されている場合、アーカイブからフォルダーを抽出します |
戻り値
- response
- array of BlobMetadata
フォルダー内のファイルを一覧表示する
この操作では、フォルダー内のファイルとサブフォルダーの一覧を取得します。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
フォルダー
|
id | True | string |
フォルダーを選択する |
戻り値
- response
- array of BlobMetadata
ルート フォルダー内のファイルを一覧表示する
トリガー
| ファイルが追加または変更されたとき (プロパティのみ) |
この操作は、フォルダーに 1 つ以上のファイルが追加または変更されたときにフローをトリガーします。 このトリガーでは、ファイル メタデータのみがフェッチされます。 ファイルの内容を取得するには、"ファイル コンテンツの取得" 操作を使用できます。 トリガーは、ファイルの最終変更時刻に依存します。 サード パーティのクライアントによってファイルが作成されている場合は、クライアントで最終変更時刻の保持を無効にする必要があります。 サブフォルダーにファイルが追加または更新された場合、トリガーは起動しません。 サブフォルダーでトリガーする必要がある場合は、複数のトリガーを作成する必要があります。 |
| ファイルが追加または変更されたとき [非推奨] |
この操作は、フォルダー内でファイルが追加または変更されたときにフローをトリガーします。 トリガーは、ファイル メタデータとファイルの内容の両方をフェッチします。 トリガーは、ファイルの最終変更時刻に依存します。 サード パーティのクライアントによってファイルが作成されている場合は、クライアントで最終変更時刻の保持を無効にする必要があります。 50 MB を超えるファイルは、トリガーによってスキップされます。 サブフォルダーにファイルが追加または更新された場合、トリガーは起動しません。 サブフォルダーでトリガーする必要がある場合は、複数のトリガーを作成する必要があります。 |
ファイルが追加または変更されたとき (プロパティのみ)
この操作は、フォルダーに 1 つ以上のファイルが追加または変更されたときにフローをトリガーします。 このトリガーでは、ファイル メタデータのみがフェッチされます。 ファイルの内容を取得するには、"ファイル コンテンツの取得" 操作を使用できます。 トリガーは、ファイルの最終変更時刻に依存します。 サード パーティのクライアントによってファイルが作成されている場合は、クライアントで最終変更時刻の保持を無効にする必要があります。 サブフォルダーにファイルが追加または更新された場合、トリガーは起動しません。 サブフォルダーでトリガーする必要がある場合は、複数のトリガーを作成する必要があります。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
フォルダー
|
folderId | True | string |
フォルダーを選択する |
|
返されるファイルの数
|
maxFileCount | integer |
1 回のトリガー実行によって返されるファイルの最大数 (1 から 100)。 "分割オン" 設定では、トリガーが各項目を個別に処理するように強制できることに注意してください。 |
戻り値
BLOB のメタデータ
- ファイルの一覧
- BlobMetadata
ファイルが追加または変更されたとき [非推奨]
この操作は、フォルダー内でファイルが追加または変更されたときにフローをトリガーします。 トリガーは、ファイル メタデータとファイルの内容の両方をフェッチします。 トリガーは、ファイルの最終変更時刻に依存します。 サード パーティのクライアントによってファイルが作成されている場合は、クライアントで最終変更時刻の保持を無効にする必要があります。 50 MB を超えるファイルは、トリガーによってスキップされます。 サブフォルダーにファイルが追加または更新された場合、トリガーは起動しません。 サブフォルダーでトリガーする必要がある場合は、複数のトリガーを作成する必要があります。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
フォルダー
|
folderId | True | string |
フォルダーを選択する |
|
ファイルの内容を含める
|
includeFileContent | boolean |
true に設定すると、トリガーの応答と共にファイルの内容も取得されます |
|
|
コンテンツ タイプの推論
|
inferContentType | boolean |
拡張機能に基づいてコンテンツ タイプを推論する |
戻り値
ファイルの内容。
- ファイル コンテンツ
- binary
定義
BlobMetadata
BLOB のメタデータ
| 名前 | パス | 型 | 説明 |
|---|---|---|---|
|
ID (アイディー)
|
Id | string |
ファイルまたはフォルダーの一意の ID。 |
|
名前
|
Name | string |
ファイルまたはフォルダーの名前。 |
|
DisplayName
|
DisplayName | string |
ファイルまたはフォルダーの表示名。 |
|
経路
|
Path | string |
ファイルまたはフォルダーのパス。 |
|
LastModified
|
LastModified | date-time |
ファイルまたはフォルダーが最後に変更された日時。 |
|
サイズ
|
Size | integer |
ファイルまたはフォルダーのサイズ。 |
|
メディアタイプ
|
MediaType | string |
ファイルまたはフォルダーのメディアの種類。 |
|
IsFolder
|
IsFolder | boolean |
BLOB がフォルダーであるかどうかを示すブール値 (true、false)。 |
|
ETag
|
ETag | string |
ファイルまたはフォルダーの etag。 |
|
FileLocator
|
FileLocator | string |
ファイルまたはフォルダーの filelocator。 |
binary
これは基本的なデータ型 'binary' です。