Write FTP file

I/O and network
Write FTP file
Success
Credentials(FTP credentials)
Error
Path
File(FTP file)
Content(Output stream)
Create directories false

Description

Writes a file to an FTP/SFTP server, creating it or overwriting whatever is already at the path. The content input is an output stream — the upstream node writes straight to the server, so uploads aren't buffered into memory. Use string-to-stream for text, model-to-stream to serialise a model, or copy-stream to forward a downloaded file (from Open FTP file or an HTTP response) without materialising it as a string; leaving content unconnected writes an empty file, which is how you drop a zero-byte sentinel. Returns the written file as an FTP file object that can be wired straight into Move/Remove FTP file. Set createDirectories to create any missing parent directories instead of failing. Branches on success/error.

When to use

Use Write FTP file whenever a pipeline has to put something onto an FTP/SFTP server: an export another system polls for, a report generated from a pipeline’s own data, or a copy of a file fetched from somewhere else. Like Find FTP files and Get FTP file, it takes Credentials and a Path rather than an FTP file object — the destination does not exist yet, so there is no server entry to wire in.

The Content pin is an output stream, the same pin type an HTTP request’s body uses, so nothing is buffered in memory on the way to the server: use String to stream for text you built in the pipeline, Model to stream to serialise a model as JSON, or Copy stream to forward a file you just downloaded. Leaving Content unconnected writes a zero-byte file, which is the usual way to drop a .done sentinel once a batch of real files has landed.

An existing file at the path is overwritten, not appended to. Parent directories are not created unless Create directories is set: leave it off and a path into a directory that does not exist takes the Error pin, which is what catches a mistyped destination. Turn it on for a path the pipeline builds itself, such as a dated /exports/2026/09/ folder — every missing level is created. Use Create FTP directory instead when the directory has to exist whether or not a file is written into it.

Pins

Input pins

Pin Type Default Notes
Credentials FTP credentials — FTP credentials produced by an FTP credentials node.
Path string — Destination path to write to. Format follows the server's conventions. Parent directories must already exist unless Create directories is set.
Content Output stream — The bytes to write, as an output stream. Leave it unconnected to write an empty file.
Create directories boolean false When true, every missing parent directory in the path is created before the file is written. Off by default, so a path into a directory that does not exist is reported rather than silently created.

Output pins

Pin Type Notes
File FTP file The file that was written, looked up on the server afterwards. Wire it straight into Move FTP file or Remove FTP file, or break it to read the size the server reports.

Execution pins

Pin Direction
In Input
Success Output
Error Output

Example

Copy a nightly export from one server to another. Wire FTP username/password credentials for the source server into Get FTP file with Path /exports/orders.csv, pass its File output into Open FTP file, and feed that stream into Copy stream. Then wire a second FTP credentials node (the destination server) plus the Copy stream output into Write FTP file with Path /inbox/orders.csv. Nothing is ever held in memory: the bytes flow from one server straight to the other.

Follow it with a second Write FTP file, Path /inbox/orders.done and Content left unconnected, so the receiving system knows the transfer finished. Wire both Error pins to a Log message to tell a failed transfer apart from a successful one.

See also