Skip to content

Prints events to bytes and uploads them via FTP or FTPS.

to_ftp url:string, [tls=record] {}

The to_ftp operator sends events to an FTP or FTPS server.

The required subpipeline receives events and must return bytes.

The URL to upload to. You can omit the ftp:// scheme.

TLS configuration.

By default, ftps:// enables TLS and ftp:// does not. If you omit the scheme, the operator assumes ftp://.

TLS configuration. Provide an empty record (tls={}) to enable TLS with defaults or set fields to customize it.

{
skip_peer_verification: bool, // skip certificate verification.
cacert: string, // CA bundle to verify peers.
certfile: string, // client certificate to present.
keyfile: string, // private key for the client certificate.
min_version: string, // minimum TLS version (`"1.0"`, `"1.1"`, `"1.2"`, "1.3"`).
ciphers: string, // OpenSSL cipher list string.
client_ca: string, // CA to validate client certificates.
require_client_cert, // require clients to present a certificate.
}

The client_ca and require_client_cert options are only applied for operators that accept incoming client connections, and otherwise ignored.

Any value not specified in the record will either be picked up from the configuration or if not configured will not be used by the operator.

See the Node TLS Setup guide for more details.

A required printing subpipeline.

The subpipeline receives events and must return bytes. For example, use write_ndjson to serialize events as newline-delimited JSON.

Use write_ndjson to serialize each event as one JSON object per line before uploading it.

from {
x: 42,
y: "foo",
}
to_ftp "ftp://user:pass@ftp.example.org/events.ndjson" {
write_ndjson
}

Add compress gzip to the printing subpipeline when you want to upload compressed output.

from {
x: 42,
y: "foo",
}
to_ftp "ftp://user:pass@ftp.example.org/events.ndjson.gz" {
write_ndjson
compress gzip
}

Last updated: