SFTP/FTP/FTPS Client

支持的管道类型:

  •  Data Collector

SFTP/FTP/FTPS Client目标端使用安全文件传输协议(SFTP),文件传输协议(FTP)或FTP安全(FTPS)协议将整个文件写入URL。

配置SFTP/FTP/FTPS Client目标端时,请指定目标端在远程服务器上写入文件的URL。目标端可以创建不存在的路径。您还可以指定要写入的文件名的表达式,以及文件在服务器上已经存在时要执行的操作。

如果服务器要求身份验证,请为所使用的协议配置凭据。对于SFTP协议,目标端可能要求将服务器列在已知主机文件中。对于FTPS协议,目标端可以使用客户端证书向服务器进行身份验证,并且可以从FTPS服务器对证书进行身份验证。

目标端可以为事件流生成事件。有关事件框架的更多信息,请参见《数据流触发器概述》。

注意: StreamSets已使用vsftpd 3.0测试了该阶段。

凭据

SFTP/FTP/FTPS Client目标端可以使用多种方法与远程服务器进行身份验证。在“Credentials”选项卡中,配置远程服务器所需的身份验证。

每种协议的身份验证选项不同:

  • 对于所有协议,请选择一种身份验证方法以登录到远程服务器。根据协议和远程服务器要求选择方法:
    • None-阶段不通过服务器进行身份验证。
    • Password-阶段使用用户名和密码向服务器认证。您必须指定用户名和密码。
    • Private key-阶段使用私钥进行身份验证。仅与SFTP协议一起使用。您必须在本地文件或纯文本中指定私钥。
  • 对于SFTP协议,该阶段可以要求将服务器列在已知主机文件中。您必须指定包含已批准SFTP服务器的主机密钥的已知主机文件的路径。
  • 对于FTPS协议,阶段可以使用证书对服务器进行身份验证。您必须指定密钥库文件和密码。您还可以通过指定信任库提供程序将阶段配置为对服务器进行身份验证。有关密钥库和信任库的更多信息,请参阅“密钥库和信任库配置”。

事件生成

SFTP/FTP/FTPS Client目标端可以生成可在事件流中使用的事件。启用事件生成后,每次目标端关闭文件或完成流式传输整个文件时,目标都会生成事件记录。

您可以以任何逻辑方式使用SFTP/FTP/FTPS Client目标端生成的事件。例如:

  • 使用HDFS文件元数据执行程序可以移动或更改已关闭文件的权限。

    有关示例,请参阅案例研究:输出文件管理。

  • 使用电子邮件执行程序在收到事件后发送自定义电子邮件。

    有关示例,请参阅案例研究:发送电子邮件。

  • 具有用于存储事件信息的目标端。

    有关示例,请参阅案例研究:事件存储。

有关数据流触发器和事件框架的更多信息,请参见数据流触发器概述。

事件记录

由SFTP/FTP/FTPS Client目标端生成的事件记录包括以下与事件相关的记录头属性。记录头属性存储为字符串值:

记录标题属性 描述
sdc.event.type 事件类型。使用以下类型之一:

  • file-closed-在目标端关闭文件时生成。
  • wholeFileProcessed-在目标端完成流式传输整个文件时生成。
sdc.event.version 整数,指示事件记录类型的版本。
sdc.event.creation_timestamp 阶段创建事件的时间戳记。

目标可以生成以下类型的事件记录:

File closure
当目标端关闭输出文件时,它将生成文件关闭事件记录。
文件关闭事件记录的 sdc.event.type记录头属性设置为file-closed,包括以下字段:

字段 描述
filepath 已关闭文件的绝对路径。
filename 关闭文件的文件名。
length 关闭文件的大小(以字节为单位)。
Whole file processed
目标端在完成流式传输整个文件时会生成一个事件记录。整个文件事件记录的 sdc.event.type记录头属性设置为,wholeFileProcessed并且具有以下字段:

字段 描述
sourceFileInfo 关于已处理的原始整个文件的属性映射。这些属性包括:

  • size-整个文件的大小(以字节为单位)。

其他属性取决于源端系统提供的信息。

targetFileInfo 关于写入目标端的整个文件的属性映射。这些属性包括:

  • path-处理后的整个文件的绝对路径。

数据格式

SFTP/FTP/FTPS Client目标端以以下数据格式写入数据:

Whole File
将整个文件流式传输到目标系统。目标端将数据写入阶段中定义的文件和位置。如果已经存在相同名称的文件,则可以将目标端配置为覆盖现有文件或将当前文件发送给错误文件。
默认情况下,写入的文件使用目标系统的默认访问权限。您可以指定一个定义访问权限的表达式。
有关整个文件数据格式的更多信息,请参见整个文件数据格式。

配置SFTP/FTP/FTPS Client目标端

配置SFTP/FTP/FTPS Client目标端,以使用SFTP,FTP或FTPS将数据发送到URL。

  1. 在“Properties”面板的“General选项卡上,配置以下属性:
    一般属性 描述
    Name 阶段名。
    Description 可选说明。
    Produce Events 发生事件时生成事件记录。用于事件处理。
    Required Fields 必须包含用于将记录传递到阶段的记录的数据的字段。

    提示:您可能包括舞台使用的字段。

    根据为管道配置的错误处理,处理不包括所有必填字段的记录。

    Preconditions 必须评估为TRUE的条件才能使记录进入处理阶段。单击添加以创建其他前提条件。

    根据为该阶段配置的错误处理,处理不满足所有前提条件的记录。

    On Record Error 该阶段的错误记录处理:

    • Discard-放弃记录。
    • To Error-将记录发送到管道以进行错误处理。
    • Stop Pipeline-停止管道。
  2. 在“SFTP/FTP/FTPS选项卡上,配置以下属性:
    SFTP/FTP/FTPS属性 描述
    Resource URL 目标端在远程服务器上发送数据的URL。使用适当的格式:

    • SFTP协议:
      sftp://<host name>:<port number>/<path>
    • FTP协议:
      ftp://<host name>:<port number>/<path> 
    • FTPS协议:
      ftps://<host name>:<port number>/<path> 

    如果服务器使用标准端口号,则可以从URL中省略端口号:对于SFTP是22,对于FTP或FTPS是21。

    您可以选择在URL中包括用于登录SFTP,FTP或FTPS服务器的用户名。例如,对于FTP协议,可以使用以下格式:

    ftp://<user name>:<password>@<host name>/<path>

    您可以输入电子邮件地址作为用户名。

    注意:如果在资源URL中输入用户名并在“Credentials”选项卡上配置密码或私钥身份验证,则URL中输入的值优先。
    Path Relative to User Home Directory 解释在资源URL中输入的相对于登录到远程服务器的用户的主目录的路径。

    您可以在URL中或在“Credentials”选项卡上配置密码或私钥身份验证时指定用户名。

    Create Path 当路径不存在时,在远程服务器上创建指定的路径。
    FTPS Mode FTPS协议使用的加密协商模式:

    • Implicit-立即使用加密。
    • Explicit-使用普通FTP连接到服务器,然后与服务器协商加密。
    FTPS Data Channel Protection Level FTPS数据通道使用的保护级别:

    • Clear-仅加密与服务器的通信,不加密发送到服务器的数据。
    • Private-加密与服务器的通信以及发送到服务器的数据。
    Socket Timeout TCP数据包之间允许的最大秒数。0表示没有限制。
    Connection Timeout 发起与SFTP,FTP或FTPS服务器的连接所允许的最大秒数。0表示没有限制。
    Data Timeout 传输的数据文件之间允许的最大秒数。0表示没有限制。
  3. 在“Credentials选项卡上,配置以下属性:
    凭据属性 描述
    Authentication 登录远程服务器的认证方式:

    • None-不通过远程服务器进行身份验证。
    • Password-使用用户名和密码向远程服务器进行身份验证。
    • Private key-使用私钥向SFTP服务器进行身份验证。

    默认为None。

    Username 登录远程服务器的用户名。

    可用于密码和私钥认证。

    Password 登录远程服务器的密码。

    可用于密码验证。

    提示: 要保护敏感信息(例如用户名和密码),可以使用运行时资源或凭据存储。
    Private Key Provider 提供私钥的源:

    • File-从本地文件读取私钥。
    • Plain-Text-从纯文本字段读取私钥。

    使用私钥身份验证时可用。

    Private Key File 用于登录远程服务器的本地私钥文件的完整路径。

    当提供程序是文件时,可用于私钥身份验证。

    Private Key 用于登录到远程服务器的私钥。

    当提供者为纯文本时,可用于私钥身份验证。

    Private Key Passphrase 用于打开私钥的密码短语。

    如果私钥受密码保护,则可用于私钥认证。

    Strict Host Checking 要求SFTP服务器列在已知主机文件中。启用后,仅当服务器在已知主机文件中列出时,目标端才连接到服务器。

    需要已知的主机文件包含RSA密钥。

    仅用于SFTP协议。

    Known Hosts File 本地已知主机文件的完整路径。如果选择严格的主机检查,则为必需。

    使用严格的主机检查时可用。

    Use Client Certificate for FTPS 使用客户端证书向FTPS服务器进行身份验证。

    当FTPS服务器需要相互认证时,请选择此选项。您必须提供包含客户端证书的密钥库文件。

    仅用于FTPS协议。

    FTPS Client Certificate Keystore File 包含客户机证书的密钥库文件的完整路径。

    对FTPS使用客户端证书时可用。

    FTPS Client Certificate Keystore Type 包含客户端证书的密钥库文件的类型。

    对FTPS使用客户端证书时可用。

    FTPS Client Certificate Keystore Password 包含客户机证书的密钥库文件的密码。密码是可选的,但建议使用。

    提示: 要保护敏感信息(例如用户名和密码),可以使用 运行时资源或凭据存储。

    对FTPS使用客户端证书时可用。

    FTPS Truststore Provider 目标端用来从FTPS服务器认证证书的方法:

    • Allow All-允许任何证书,跳过身份验证。
    • File-使用指定的信任库文件对证书进行身份验证。
    • JVM Default-使用JVM默认信任库对证书进行身份验证。

    仅用于FTPS协议。

    FTPS Truststore File 包含服务器证书的信任库文件的完整路径。

    在将文件用作FTPS信任库提供程序时可用。

    FTPS Truststore Type 信任库类型:

    • Java Keystore file (JKS)
    • PKCS-12 (p12 file)

    在将文件用作FTPS信任库提供程序时可用。

    FTPS Truststore Password 信任库文件的密码。密码是可选的,但建议使用。

    提示: 要保护敏感信息(例如用户名和密码),可以使用 运行时资源或凭据存储。

    在将文件用作FTPS信任库提供程序时可用。

  4. 在“Data Format选项卡上,配置以下属性:
    整个文件属性 描述
    Data Format 要写入的数据格式。目标端使用整个文件数据格式。
    File Name Expression

    用于文件名的表达式。

    有关如何根据输入文件名命名文件的提示,请参阅“写整个文件”。

    File Exists 当输出目录中已经存在同名文件时采取的措施。使用以下选项之一:

    • Send to Error-根据阶段错误记录处理来处理记录。
    • Overwrite-覆盖现有文件。