Skip to content

Ftp Writer

Ftp Writer 提供了向远程 FTP/SFTP 服务写入文件的能力,当前仅支持写入文本文件。

配置样例

json
{
  "job": {
    "setting": {
      "speed": {
        "channel": 2,
        "bytes": -1
      }
    },
    "content": {
      "reader": {},
      "writer": {
        "name": "ftpwriter",
        "parameter": {
          "protocol": "sftp",
          "host": "***",
          "port": 22,
          "username": "xxx",
          "password": "xxx",
          "timeout": "60000",
          "connectPattern": "PASV",
          "path": "/tmp/data/",
          "fileName": "test",
          "writeMode": "truncate|append|nonConflict",
          "fieldDelimiter": ",",
          "encoding": "UTF-8",
          "nullFormat": "null",
          "dateFormat": "yyyy-MM-dd",
          "fileFormat": "csv",
          "useKey": false,
          "keyPath": "",
          "keyPass": "",
          "header": []
        }
      }
    }
  }
}

参数说明

配置项是否必须数据类型默认值描述
protocolstringftp服务器协议,目前支持传输协议有 ftp 和 sftp
hoststring服务器地址
portint22/21ftp 默认为 21,sftp 默认为 22
timeoutint60000连接ftp服务器连接超时时间,单位毫秒(ms)
connectPatternstringPASV连接模式,仅支持 PORT, PASV 模式。ftp协议时使用 |
usernamestring用户名
passwordstring访问密码
useKeybooleanfalse是否使用私钥登录,仅针对 sftp 登录有效
keyPathstring~/.ssh/id_rsa私钥地址
keyPassstring私钥密码,若没有设置私钥密码,则无需配置该项
pathstring远程FTP文件系统的路径信息,FtpWriter会写入Path目录下属多个文件
fileNamestring写入的文件名,该文件名会添加随机的后缀作为每个线程写入实际文件名
writeModestring写入前数据清理处理模式,详见下文
fieldDelimiterstring,描述:读取的字段分隔符
compressstring文本压缩类型,暂不支持
encodingstringutf-8读取文件的编码配置
dateFormatstring日期类型的数据序列化到文件中时的格式,例如 "yyyy-MM-dd"
fileFormatstringtext文件写出的格式,包括 csv, text 两种,
headerlisttext写出时的表头,示例 ['id', 'name', 'age']
nullFormatstring\N定义哪些字符串可以表示为null
maxTraversalLevelint100允许遍历文件夹的最大层数
csvReaderConfigmap读取CSV类型文件参数配置,详见下文

writeMode

描述:FtpWriter写入前数据清理处理模式:

  1. truncate,写入前清理目录下一fileName前缀的所有文件。
  2. append,写入前不做任何处理,Addax FtpWriter直接使用filename写入,并保证文件名不冲突。
  3. nonConflict,如果目录下有fileName前缀的文件,直接报错。

认证

4.0.2 版本开始, 支持私钥认证方式登录 SFTP 服务器,如果密码和私有都填写了,则两者认证方式都会尝试。 注意,如果填写了 keyPath, keyPass 项,但 useKey 设置为 false ,插件依然不会尝试用私钥进行登录。

类型转换

FTP文件本身不提供数据类型,该类型是 Addax FtpWriter 定义:

Addax 内部类型FTP文件 数据类型
LongLong -> 字符串序列化表示
DoubleDouble -> 字符串序列化表示
StringString -> 字符串序列化表示
BooleanBoolean -> 字符串序列化表示
DateDate -> 字符串序列化表示