FTP, or File Transfer Protocol, is a standard network protocol used for transferring files between a client and a server on a computer network. An FTP server, also known as an FTP site or FTP host, is a server computer that hosts files and provides them to clients over the FTP protocol, facilitating the exchange of files and data across the internet or a local network.
Authorize Connection to FTP server
Authorize the connection so Dataddo can write files to FTP server:
| Field | Description |
|---|---|
| A name for this authorizer in Dataddo | A label so you can recognize the connection later. |
| Server IP or Hostname | Public IP or Hostname of your FTP Server. |
| Username | Username for authentication. |
| Password | Password for authentication. |
| Port | Port to connect to FTP. The default value is 21. |
| Timeout | Timeout Default: 90. |
| Advanced Configuration | Advanced Configuration |
| Disable Explicit TLS | DisableExplicitTLS disables the use of the AUTH TLS command. It is useful for servers which do not support it. It highly not recommended to use it. Shown when additionalDetails is ``. |
| Dial timeout | Dial timeout Default: 90. Shown when additionalDetails is ``. |
| Shut timeout | Shut timeout Default: 90. Shown when additionalDetails is ``. |
| Disable EPSV | DisableEPSV explicitly disables Extended Passive Mode. It helps, if server claims to support it, but it doesn't. Normally, EPSV is only used when advertised in the server features. Shown when additionalDetails is ``. |
| Disable UTF8 | DisableUTF8 disables UTF8 Shown when additionalDetails is ``. |
| Disable MLSD | DisableMLSD is useful for servers which advertise MLSD (e.g. some versions of Serv-U) but don't support it properly. Shown when additionalDetails is ``. |
| MDTM Write | MDTMWrite addresses a quirk in the VsFtpd server which doesn't support the MFMT command for setting file time like other servers but by default uses the MDTM command with non-standard arguments for that. See "mdtm_write" in https://security.appspot.com/vsftpd/vsftpd_conf.html Shown when additionalDetails is ``. |
Dataddo validates the connection when you save it.
Create a FTP server Destination
Go to Destinations, click Create Destination, and select FTP server. Give the destination a name, choose the authorizer, then set:
| Field | Description |
|---|---|
| Path | Enter or select the directory where the data file will be created. Shown when oAuthId is ``. |
Click Save.
Supported File Formats
Each flow run writes the data as a file in the format you pick.
| Format | Description |
|---|---|
csv |
FTP server writes the data as CSV files. |
json |
FTP server writes the data as JSON files. |
jsonl |
FTP server writes the data as JSONL files. |
parquet |
FTP server writes the data as PARQUET files. |
For CSV you can set the delimiter, header row, and date formatting. For Parquet, JSON, and JSONL you can set the timestamp unit.
File Naming
You can also build a custom filename with these placeholders (see Dynamic File Naming Patterns for the full list):
{{objectLabel}}and{{objectId}}: the flow name and id.{{today}}and{{yesterday}}: the run date.{{dateRangeStart}}and{{dateRangeEnd}}: the bounds of the flow's date range.- Date-range expressions such as
{{1d1}}(yesterday) or{{90d1}}(the last 90 days through yesterday). - Add a date format after a
|, for example{{today|Ymd}}gives20201231and{{1d1|Y-m-d}}gives2020-12-31.
File Partitioning
File partitioning splits a large dataset into smaller files based on a criterion such as date, which improves how a data lake organizes and queries the data (see Data Lake Ingestion). In Dataddo you partition by putting date variables from File Naming into the file name, so each flow run writes its own dated file.
For example, events_{{1d1|Y-m-d}}.parquet writes one Parquet file per day, so a lake engine such as FTP server can read the set of files as a date-partitioned dataset. Pick a file format like Parquet or CSV that your lake reads, and schedule the flow to match the partition period (for example daily for a daily date token).
Write Modes
Each flow run writes a file at the resolved name. The default is truncate_insert: insert keeps writing new files, and truncate_insert replaces the file at the same name.
How Data Is Delivered
Every run produces one file at the resolved name. A date-stamped name accumulates a new snapshot file per run, which is the pattern described in Data Lake Ingestion.
How to Create a Flow to FTP server
- Go to Flows and click Create Flow.
- Add one or more sources.
- Add FTP server as the destination and pick the authorizer.
- Choose the file format and the file name.
- Set the schedule and click Save.
Troubleshooting
Cannot connect to FTP server
Dataddo cannot reach FTP server. Check the credentials, path, and permissions in the authorizer and destination, and make sure FTP server is reachable by Dataddo.
File is not created
The account used by Dataddo lacks write permission on the target path. Grant write access to the folder or bucket and restart the flow.