---
title: c FTP and FTPS
description: Available connectors
documentId: ipaas-ftp-s
locale: en-US
---

The [**FTP**](https://camel.apache.org/components/4.10.x/ftp-component.html) component provides access to remote file systems through the FTP and SFTP protocols. Operation only in passive mode.

<Callout type="NOTE" title="NOTE">
[**FTPS**](https://camel.apache.org/components/4.4.x/ftps-component.html) is a secure version of FTP, which adds support for SSL/TLS to encrypt the connection.
</Callout>

**URI syntax**: `ftp:host:port/directoryName`

## Main fields

*Path parameters*

| **Name** | **Description** | **Default** | **Type** |
|----------|---------------|------------|----------|
| `host` (common)          | (required) FTP server hostname. | — | String |
| `port` (common)          | FTP server port.                      | — | int    |
| `directoryName` (common) | Initial directory.                          | — | String |

*Query parameters*

| **Name** | **Description** | **Default** | **Type** |
|----------|---------------|------------|----------|
| `fileName` (common) | Used to dynamically set the file name as an expression. In the consumer, serves as a name filter; in the producer, to evaluate the file name to write.              |  — | String |
| `password` (security) | Password used for authentication on the FTP server.           | — | String  |
| `username` (security) | Username used for authentication on the FTP server. | — | String  |
| `delay` (scheduler)   | Time in milliseconds before the next check/poll to consume files. | 500 | long    |
| `passiveMode` (common)| Sets passive mode connections.          |false| boolean |

## Example

<Steps>
  <Step>
  The flow is triggered by a Quartz trigger with cron expression `0**?**` (runs every minute at the start of the minute).
  </Step>
  <Step>
  The message body is set to `Hello World!` using the `constant` expression.
  </Step>
  <Step>
  The file is sent via FTP to the server `demo.wftpserver.com`:
   - Directory: `/upload`
   - File name: `helloworld2.txt`
   - Passive mode: `true`
   - Authentication: user `demo` and password `demo`
  </Step>
</Steps>

```yaml
- from:
    uri: quartz:/quartz-trigger
    parameters:
      cron: 0**?**
    steps:
      - setBody:
          expression:
            constant:
              expression: Hello World!
      - to:
          uri: ftp:demo.wftpserver.com:/upload
          parameters:
            fileName: helloworld2.txt
            passiveMode: true
            password: demo
            username: demo
```

![](https://creative-ball-51b3fc85c0.media.strapiapp.com/ftp_connector_2436c93461.png)


### Result

As a result of the integration, the file `helloworld2.txt` is available:

![](https://creative-ball-51b3fc85c0.media.strapiapp.com/ftp_connector_result_368833576f.png)
