FTP

文件传输协议(FTP)是一种标准网络协议,用于在计算机网络上的客户端和服务器之间传输计算机文件。 FTP 基于客户端-服务器模型体系结构构建,使用客户端与服务器之间的单独控制和数据连接。

此连接器在以下产品和区域中可用:

服务 Class 区域
Copilot Studio 标准 除以下各项外的所有 Power Automate 区域
     - 美国政府 (GCC High)
     - 美国国防部(DoD)
逻辑应用程序 标准 所有 逻辑应用区域
Power Apps 标准 除以下各项外的所有 Power Apps 区域
     - 美国政府 (GCC High)
     - 美国国防部(DoD)
Power Automate 标准 除以下各项外的所有 Power Automate 区域
     - 美国政府 (GCC High)
     - 美国国防部(DoD)
连接器元数据
发布者 Microsoft

已知问题和限制

  • 本文仅介绍适用于 Azure 逻辑应用、Power Automate 和 Power Apps 的 FTP 托管连接器的作。 FTP 内置 连接器仅适用于 Azure 逻辑应用中的标准逻辑应用工作流。 有关 Azure 逻辑应用中 FTP 内置连接器的详细信息,请查看 从 Azure 逻辑应用中的工作流连接到 FTP 服务器

  • FTP 触发器现在仅返回元数据或属性,而不返回文件内容。 但是,可以使用名为 Get 文件内容的作遵循这些触发器。 若要确保触发器一次返回一个文件,而不是列表,请确保启用触发器的“拆分方式”选项。 有关 Azure 逻辑应用中此选项的详细信息,请查看 “触发多个运行”。

  • FTP 触发器仅适用于指定的文件夹,而不适用于子文件夹。 若要检查文件夹的子文件夹,请为每个子文件夹设置单独的流。

  • 默认情况下,FTP 托管连接器 作可以读取或写入 大小为 50 MB 或更小的文件。 若要处理大于 50 MB 的文件,可以使用名为 Get 文件内容的 FTP 托管连接器作,该作隐式使用消息分块。 其他 FTP 托管连接器作还支持启用 消息分块

  • 当返回新创建、添加或更新的文件时,FTP 触发器可能会遇到延迟或不完整的结果。

    当 FTP 触发器检查新添加或更改的文件时,触发器还会确认该文件已完成。 例如,触发器检查 FTP 服务器时,文件可能正在进行更改。 为了避免返回不完整的文件,触发器会记下文件的时间戳,但不会立即返回该文件。 相反,触发器仅在触发器再次检查服务器时返回该文件。 有时,此行为可能会导致延迟持续到触发器轮询间隔的两倍。 由于此行为,如果禁用 FTP 触发器的 “拆分时 ”设置,FTP 触发器可能不会同时返回所有文件,

  • 保留“上次修改时间”时间戳时,FTP 托管连接器触发器可能会遇到缺失、不完整或延迟的结果。

    • 缺少结果

      FTP 触发器的工作原理是轮询或检查 FTP 文件系统,并查找自上次轮询以来更改的任何文件。 FTP 托管连接器使用文件的上次修改时间戳来比较文件版本。

      如果使用的时间戳早于当前跟踪的上次修改时间戳创建、添加或更新文件,则 FTP 托管连接器触发器不会检测此文件。 另一方面,标准型逻辑应用工作流中的 FTP 内置连接器触发器没有此限制

      因此,如果使用在 FTP 服务器上创建、添加或更新文件的外部工具或客户端,请确保禁用工具或客户端中保留文件的上次修改时间戳的任何功能。

      下表列出了保留此时间戳的一些常用工具以及禁用此功能的步骤:

      FTP 客户端 Action
      WinSCP 转到 “选项>首选项>传输>编辑>保留时间戳>禁用”。
      FileZilla 转到“传输>保留已传输文件的>时间戳”禁用
    • 结果不完整或延迟

      当 FTP 触发器检查新创建、添加或更新的文件时,触发器还会检查文件是否已完成。 例如,触发器检查 FTP 服务器时,文件可能正在进行更改。 为了避免返回不完整的文件,触发器会记下文件的时间戳,但不会立即返回该文件。 相反,触发器仅在触发器再次检查服务器时返回该文件。

      有时,此行为可能会导致延迟,只要触发器的轮询间隔几乎是触发器的轮询间隔的两倍。 由于此行为,如果禁用 FTP 触发器的 “拆分时 ”设置,FTP 触发器可能不会同时返回所有文件。

要求

  • FTP 连接器需要 FTP 主机服务器地址和帐户凭据。

  • FTP 连接器需要从 Internet 或通过 Internet 访问 FTP 服务器。 有关允许使用特定 IP 范围的 FTP 服务器的流量的详细信息,请查看 托管连接器 IP 地址

  • FTP 连接器要求 FTP 服务器在 被动 模式下运行或接受。

  • FTP 连接器要求 FTP 服务器启用以下命令并支持包含空格的文件夹,以便命令能够正常工作。 对于 LIST 命令,请确保该命令返回 year 超过 6 个月的文件时间戳的组件。

    • APPE
    • DELE
    • 列表
    • MDTM
    • RENAME
    • RETR
    • 大小
    • STOR
  • 对于安全 FTP,请确保设置 显式 文件传输协议安全(FTPS),而不是隐式 FTPS。 此外,某些 FTP 服务器(如 ProFTPd)要求在使用传输层安全性(TLS)模式(安全套接字层(SSL)的后续版本)时启用 NoSessionReuseRequired 该选项。

    FTP 连接器不适用于隐式 FTPS,仅支持通过 FTPS 显式 FTP,这是 TLS 的扩展。

FTP 连接

  • 若要提高 FTP 连接器和 FTP 服务器的性能,可以在连接器完成请求后保持 FTP 连接打开和处于活动状态。

    创建与 FTP 服务器的连接时,出现的连接配置文件框在 请求完成后具有名为 Close 连接的设置。 此设置指定是否在请求完成后每次关闭 FTP 服务器连接。 如果禁用此设置,则请求完成后连接不会关闭,并保持活动状态以供将来使用。

  • 如果工作流实例并行运行,可能会遇到间歇性连接错误。 即使工作流中的其他作仍在使用该连接,工作流中的某些作也可能强行关闭连接。

    若要避免这种情况,请尝试以下建议:

    • 创建连接时,请在 请求完成设置后启用“关闭”连接

    • 关闭在触发器或作上启用的任何并行化或并发。 有关 Azure 逻辑应用中此解决方案的详细信息,请查看以下文档:

    • 避免运行多个并行流。

在不使用分块的情况下使用“创建文件”作

对于 “创建文件 ”作,行为取决于作的 “允许分块 ”设置和要创建的文件的大小:

  • 允许启用分块

    • 文件大小等于或小于 50 MB:作使用单个请求上传文件,使用原始文件名,并在上传过程中锁定文件。

    • 文件大小大于 50 MB:该作创建文件名格式为文件名的文件new-GUID.ms.partial,并使用多个请求或消息分块上传文件。 在作上传最后一个区块后,该作会重命名具有原始文件名的文件。

  • 允许禁用分块 :该作使用单个请求上传文件,使用原始文件名,并在上传过程中锁定文件。

连接器作指南

有关如何在 Azure 逻辑应用中使用 FTP 托管连接器和内置连接器的信息,请查看 从 Azure 逻辑应用中的工作流连接到 FTP 服务器

常规限制

Name 价值
单个存档中的最大文件夹数。 此限制仅适用于“创建文件夹?”时 设置为“是”。 16
在带宽时间间隔(每个连接)内传入/传出连接器的最大兆字节数 1000
带宽时间间隔(以米利西康德为单位) 60000

正在创建连接

连接器支持以下身份验证类型:

默认 用于创建连接的参数。 所有区域 不可共享

违约

适用:所有区域

用于创建连接的参数。

这是不可共享的连接。 如果 Power App 与另一个用户共享,系统会提示其他用户显式创建新连接。

Name 类型 Description 必选
服务器地址 字符串 服务器地址 True
用户名 字符串 用户名 True
密码 securestring 密码 True
FTP 服务器端口 int FTP 端口号(示例:21)
启用 SSL? 布尔 启用 SSL? (真/假)
二进制传输? 布尔 启用二进制传输? (真/假)
禁用证书验证? 布尔 禁用证书验证? (真/假)
完成请求后关闭连接 布尔 请求完成后每次关闭 FTP 连接? (真/假)

限制

名称 调用 续订期
每个连接的 API 调用数 900 60 秒

操作

使用路径获取文件元数据

此作使用文件路径获取文件的元数据。

使用路径获取文件内容

此作使用文件路径获取文件的内容。

列出文件夹中的文件

此作获取文件夹中的文件和子文件夹的列表。

列出根文件夹中的文件

此作获取根文件夹中的文件和子文件夹的列表。

创建文件

此作将创建一个文件。 如果在创建文件后立即在服务器上删除/重命名文件,连接器可能会因设计而返回 HTTP 404 错误。 请在删除或重命名新创建的文件之前使用延迟 1 分钟。

删除文件

此作将删除文件。

复制文件

此作将文件复制到 FTP 服务器。 如果在复制文件后立即在服务器上删除/重命名文件,连接器可能会按设计返回 HTTP 404 错误。 请在删除或重命名新创建的文件之前使用延迟 1 分钟。

将存档解压缩到文件夹

此作将存档文件提取到文件夹中(例如:.zip)。

更新文件

此作将更新文件。 如果在更新文件后立即在服务器上删除/重命名文件,连接器可能会通过设计返回 HTTP 404 错误。 请在删除或重命名最近更新的文件之前使用延迟 1 分钟。

获取文件元数据

此作获取文件的元数据。

获取文件内容

此作获取文件的内容。

使用路径获取文件元数据

此作使用文件路径获取文件的元数据。

参数

名称 密钥 必需 类型 说明
文件路径
path True string

选择文件

返回

Blob 元数据

使用路径获取文件内容

此作使用文件路径获取文件的内容。

参数

名称 密钥 必需 类型 说明
文件路径
path True string

选择文件

推断内容类型
inferContentType boolean

基于扩展推断内容类型

返回

文件的内容。

文件内容
binary

列出文件夹中的文件

此作获取文件夹中的文件和子文件夹的列表。

参数

名称 密钥 必需 类型 说明
文件夹
id True string

选择文件夹

返回

列出根文件夹中的文件

此作获取根文件夹中的文件和子文件夹的列表。

返回

创建文件

此作将创建一个文件。 如果在创建文件后立即在服务器上删除/重命名文件,连接器可能会因设计而返回 HTTP 404 错误。 请在删除或重命名新创建的文件之前使用延迟 1 分钟。

参数

名称 密钥 必需 类型 说明
文件夹路径
folderPath True string

选择文件夹

文件名
name True string

文件的名称

文件内容
body True binary

文件的内容

获取所有文件元数据
ReadFileMetadataFromServer boolean

文件创建完成后,从 SFTP 服务器获取所有文件元数据。 如果为 false,则某些元数据属性可能不会返回,例如上次修改时间等。

返回

Blob 元数据

删除文件

此作将删除文件。

参数

名称 密钥 必需 类型 说明
文件
id True string

选择文件

复制文件

此作将文件复制到 FTP 服务器。 如果在复制文件后立即在服务器上删除/重命名文件,连接器可能会按设计返回 HTTP 404 错误。 请在删除或重命名新创建的文件之前使用延迟 1 分钟。

参数

名称 密钥 必需 类型 说明
源 URL
source True string

源文件的 URL

目标文件路径
destination True string

目标文件路径,包括目标文件名

改写?
overwrite boolean

如果设置为“true”,则覆盖目标文件

返回

Blob 元数据

将存档解压缩到文件夹

此作将存档文件提取到文件夹中(例如:.zip)。

参数

名称 密钥 必需 类型 说明
源存档文件路径
source True string

存档文件的路径

目标文件夹路径
destination True string

目标文件夹的路径

改写?
overwrite boolean

如果设置为“true”,则覆盖目标文件

创建文件夹?
createFolders boolean

如果设置为“true”,则从存档中提取文件夹

返回

更新文件

此作将更新文件。 如果在更新文件后立即在服务器上删除/重命名文件,连接器可能会通过设计返回 HTTP 404 错误。 请在删除或重命名最近更新的文件之前使用延迟 1 分钟。

参数

名称 密钥 必需 类型 说明
文件
id True string

选择文件

文件内容
body True binary

文件的内容

返回

Blob 元数据

获取文件元数据

此作获取文件的元数据。

参数

名称 密钥 必需 类型 说明
文件
id True string

选择文件

返回

Blob 元数据

获取文件内容

此作获取文件的内容。

参数

名称 密钥 必需 类型 说明
文件
id True string

选择文件

推断内容类型
inferContentType boolean

基于扩展推断内容类型

返回

文件的内容。

文件内容
binary

触发器

添加或修改文件时 [已弃用]

此作在文件夹中添加或修改文件时触发流。 触发器将同时提取文件元数据和文件的内容。 触发器依赖于文件的上次修改时间。 如果文件是由第三方客户端创建的,则应在客户端中禁用上次修改时间的保留。 触发器跳过大于 50 兆字节的文件。 如果在子文件夹中添加/更新文件,触发器不会触发。 如果需要在子文件夹中触发,则应创建多个触发器。

添加或修改文件时(仅属性)

在文件夹中添加或修改一个或多个文件时,此作将触发流。 此触发器将仅提取文件元数据。 若要获取文件内容,可以使用“获取文件内容”作。 触发器依赖于文件的上次修改时间。 如果文件是由第三方客户端创建的,则应在客户端中禁用上次修改时间的保留。 如果在子文件夹中添加/更新文件,触发器不会触发。 如果需要在子文件夹中触发,则应创建多个触发器。

添加或修改文件时 [已弃用]

此作在文件夹中添加或修改文件时触发流。 触发器将同时提取文件元数据和文件的内容。 触发器依赖于文件的上次修改时间。 如果文件是由第三方客户端创建的,则应在客户端中禁用上次修改时间的保留。 触发器跳过大于 50 兆字节的文件。 如果在子文件夹中添加/更新文件,触发器不会触发。 如果需要在子文件夹中触发,则应创建多个触发器。

参数

名称 密钥 必需 类型 说明
文件夹
folderId True string

选择文件夹

包括文件内容
includeFileContent boolean

如果设置为 true,则还会连同触发器响应一起检索文件内容

推断内容类型
inferContentType boolean

基于扩展推断内容类型

返回

文件的内容。

文件内容
binary

添加或修改文件时(仅属性)

在文件夹中添加或修改一个或多个文件时,此作将触发流。 此触发器将仅提取文件元数据。 若要获取文件内容,可以使用“获取文件内容”作。 触发器依赖于文件的上次修改时间。 如果文件是由第三方客户端创建的,则应在客户端中禁用上次修改时间的保留。 如果在子文件夹中添加/更新文件,触发器不会触发。 如果需要在子文件夹中触发,则应创建多个触发器。

参数

名称 密钥 必需 类型 说明
文件夹
folderId True string

选择文件夹

要返回的文件数
maxFileCount integer

单个触发器运行返回的最大文件数(1-100)。 请注意,“拆分打开”设置可以强制触发以单独处理每个项。

返回

Blob 元数据

文件列表
BlobMetadata

定义

BlobMetadata

Blob 元数据

名称 路径 类型 说明
Id
Id string

文件或文件夹的唯一 ID。

Name
Name string

文件或文件夹的名称。

显示名称
DisplayName string

文件或文件夹的显示名称。

路径
Path string

文件或文件夹的路径。

LastModified
LastModified date-time

上次修改文件或文件夹的日期和时间。

尺寸
Size integer

文件或文件夹的大小。

MediaType
MediaType string

文件或文件夹的媒体类型。

IsFolder
IsFolder boolean

一个布尔值(true、false),用于指示 Blob 是否为文件夹。

ETag
ETag string

文件或文件夹的 etag。

FileLocator
FileLocator string

文件或文件夹的 filelocator。

二进制

这是基本数据类型“binary”。