FTP Connector 2.0 Reference | MuleSoft Documentation
# FTP Connector 2.0 Reference
Support Category: Select
FTP Connector connects to the specified FTP server.
## Configurations
### Default Configuration
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
The name for this configuration. Connectors reference the configuration with this name.  
**Connection** |  |  The connection types to provide to this configuration.  
**Default write encoding (DEPRECATED)** |  This parameter is deprecated and is ignored.  
**Time Between Size Check** |  When enabled, Mule performs two size checks, waiting the specified time between calls. If both checks return the same value, the file is ready to be read. This allows a file write to complete before the file is processed. This attribute works in tandem with *Time between size check unit*. If no value is provided, the check is not performed.   
**Time Between Size Check Unit** |  Enumeration, one of:
  * NANOSECONDS
  * MICROSECONDS
  * MILLISECONDS
  * SECONDS
  * MINUTES
  * HOURS

|  A **Time unit** that qualifies the **Time between size check** attribute. Defaults to `MILLISECONDS`. |  `MILLISECONDS`  
**Expiration Policy** |  Expiration Policy |  Configures the minimum amount of time that a dynamic configuration instance can remain idle before the runtime considers it eligible for expiration. This does not mean that the platform expires the instance at the exact moment that it becomes eligible. The runtime purges the instances when as appropriate.  
#### Connection Types
##### FTP Connection
Connects to an FTP server.
###### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Working Directory** |  The directory designated as the root of every relative path used with this connector. If not provided, it defaults to the remote server default.  
One of: * HTTP Tunnel Proxy * HTTP Tunnel Proxy |  Enables you to set HTTP or HTTPS tunnel proxy.  
**Transfer Mode** |  Enumeration, one of:
  * BINARY
  * ASCII

|  The transfer mode to use. Currently, BINARY (default) and ASCII are supported.  
Whether to use passive mode. Set to `false` to switch to active mode.  
**Enable Remote Verification** |  Enable or disable verification that the remote host taking part of a data connection is the same as the host to which the control connection is attached.  
**Control Encoding** |  Set the control encoding to use in the control channel with the remote server. This does NOT set the encoding for the content of the files to be transferred. Known control encodings include: `ISO-8859-1` and `UTF-8`  
**Connection Timeout** |  A scalar value representing the amount of time to wait before a connection attempt times out. This attribute works in tandem with **Connection timeout unit**.  
**Connection Timeout Unit** |  Enumeration, one of:
  * NANOSECONDS
  * MICROSECONDS
  * MILLISECONDS
  * SECONDS
  * MINUTES
  * HOURS

|  A **Time unit** that qualifies the **Connection timeout** attribute.  
**Response Timeout** |  A scalar value representing the amount of time to wait before a request for data times out. This attribute works in tandem with **Response timeout unit**.  
**Response Timeout Unit** |  Enumeration, one of:
  * NANOSECONDS
  * MICROSECONDS
  * MILLISECONDS
  * SECONDS
  * MINUTES
  * HOURS

|  A **Time unit** that qualifies the **Response timeout unit** attribute.  
The FTP server host, such as `www.mulesoft.com`, `localhost`, or `192.168.0.1`, and so on.  
The port number of the FTP server to which to connect.  
Username for the FTP Server. Required if the server is authenticated.  
Password for the FTP Server. Required if the server is authenticated.  
**Reconnection** |  |  When the application is deployed, a connectivity test is performed on all connectors. If set to `true`, deployment fails if the test doesn’t pass after exhausting the associated reconnection strategy.  
**Pooling Profile** |  Pooling Profile |  Characteristics of the connection pool.  
## Operations
  * Create Directory


### Associated Sources
  * On New or Updated File


### Copy
`<ftp:copy>`
Copies the file or directory specified in **Source Path** into the **Target Path**. The source path can be either a file or a directory. If it points to a directory, then it is copied recursively.
If the target path doesn’t exist, and neither does its parent, then a parent folder is created if **Create parent directories** is set to `true`. If **Create parent directories** is set to `false`, then an `FTP:ILLEGAL_PATH` error is thrown.
If **Overwrite** is set to `true` and the target file already exists, then the target file is overwritten. Otherwise, an `FTP:FILE_ALREADY_EXISTS` error is thrown.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Configuration** |  The name of the configuration to use.  
**Source Path** |  The path to the file to be copied.  
**Target Path** |  The target directory where the file is going to be copied.  
**Create Parent Directories** |  Whether or not to attempt creating any parent directories that don’t exist.  
Whether or not to overwrite the file if the target destination already exists.  
The new name for the copied file. If not provided, original file name is kept.  
**Reconnection Strategy** | 
  *   * Reconnect Forever

|  A retry strategy in case of connectivity errors.  
### For Configurations
  * Default Configuration


#### Throws
  * FTP:FILE_ALREADY_EXISTS
  * FTP:RETRY_EXHAUSTED
  * FTP:ILLEGAL_PATH
  * FTP:CONNECTIVITY


### Create Directory
`<ftp:create-directory>`
Creates a new directory on **Directory path**.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Configuration** |  The name of the configuration to use.  
**Directory Path** |  The name for the new directory.  
**Reconnection Strategy** | 
  *   * Reconnect Forever

|  A retry strategy in case of connectivity errors.  
### For Configurations
  * Default Configuration


#### Throws
  * FTP:FILE_ALREADY_EXISTS
  * FTP:RETRY_EXHAUSTED
  * FTP:ILLEGAL_PATH
  * FTP:ACCESS_DENIED
  * FTP:CONNECTIVITY


### Delete
`<ftp:delete>`
Deletes the file that is pointed to by the path, provided the file isn’t locked.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Configuration** |  The name of the configuration to use.  
The path to the file to delete.  
**Reconnection Strategy** | 
  *   * Reconnect Forever

|  A retry strategy in case of connectivity errors.  
### For Configurations
  * Default Configuration


#### Throws
  * FTP:RETRY_EXHAUSTED
  * FTP:ILLEGAL_PATH
  * FTP:ACCESS_DENIED
  * FTP:CONNECTIVITY


### List
`<ftp:list>`
Lists all the files in the **Directory path** that match the given matcher. If the listing encounters a directory, the output list will include its file path, depending on the value of the recursive parameter.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Configuration** |  The name of the configuration to use.  
**Directory Path** |  The path to the directory to list.  
Whether to include the contents of subdirectories.  
**File Matching Rules** |  A matcher used to filter the output list.  
**Streaming Strategy** | 
  * Repeatable In Memory Iterable
  * Repeatable File Store Iterable
  * non-repeatable-iterable

|  Configure to use repeatable streams.  
**Target Variable** |  The name of a variable to store the operation’s output.  
**Target Value** |  An expression to evaluate against the operation’s output and then store the expression’s outcome in the target variable.  
**Reconnection Strategy** | 
  *   * Reconnect Forever

|  A retry strategy in case of connectivity errors.  
#### Output
Array of Message of payload and [Ftp File Attributes] attributes.  
---  
### For Configurations
  * Default Configuration


#### Throws
  * FTP:ILLEGAL_PATH
  * FTP:ACCESS_DENIED
### List
`<ftp:list>`
Lists all the files in the **Directory path** that match the given matcher. If the listing encounters a directory, the output list will include its file path, depending on the value of the recursive parameter.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Configuration** |  The name of the configuration to use.  
**Directory Path** |  The path to the directory to list.  
Whether to include the contents of subdirectories.  
**File Matching Rules** |  A matcher used to filter the output list.  
**Streaming Strategy** | 
  * Repeatable In Memory Iterable
  * Repeatable File Store Iterable
  * non-repeatable-iterable

|  Configure to use repeatable streams.  
**Target Variable** |  The name of a variable to store the operation’s output.  
**Target Value** |  An expression to evaluate against the operation’s output and then store the expression’s outcome in the target variable.  
**Reconnection Strategy** | 
  *   * Reconnect Forever

|  A retry strategy in case of connectivity errors.  
#### Output
Array of Message of payload and [Ftp File Attributes] attributes.  
---  
### For Configurations
  * Default Configuration


#### Throws
  * FTP:ILLEGAL_PATH
  * FTP:ACCESS_DENIED


### Move
`<ftp:move>`
Moves the file or directory from the **Source Path** into the **Target Path**. The source path can be either a file or a directory. If it points to a directory, then it will be moved recursively.
If the target path doesn’t exist, and neither does its parent, then a parent folder is created if **Create parent directories** is set to `true`. If **Create parent directories** is set to `false`, then an `FTP:ILLEGAL_PATH` error is thrown.
If the target file already exists, then it will be overwritten if **Overwrite** is set to `true`. If **Overwrite** is set to `false`, an `FTP:FILE_ALREADY_EXISTS` error will be thrown.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Configuration** |  The name of the configuration to use.  
**Source Path** |  The path to the file to be copied.  
**Target Path** |  The target directory.  
**Create Parent Directories** |  Whether or not to attempt creating any parent directories that don’t exist.  
Whether or not to overwrite the file if the target destination already exists.  
The new name for the moved file. If not provided, the original file name is kept.  
**Reconnection Strategy** | 
  *   * Reconnect Forever

|  A retry strategy in case of connectivity errors.  
### For Configurations
  * Default Configuration


#### Throws
  * FTP:FILE_ALREADY_EXISTS
  * FTP:RETRY_EXHAUSTED
  * FTP:ILLEGAL_PATH
  * FTP:CONNECTIVITY


### Read
`<ftp:read>`
Obtains the content and metadata of a file at a specified path. The operation itself returns a Message with a payload that is an input stream with the file’s content, and the metadata is represented as an `FtpFileAttributes` object that’s placed as the message’s `Message#getAttributes()` attributes.
If the lock parameter is set to `true`, then a file system-level lock is placed on the file until the input stream this operation returns is closed or fully consumed. Because the lock is actually provided by the host file system, its behavior might change depending on the mounted drive and the operation system on which Mule is running. Take that into consideration before relying on this lock.
This method also makes a best effort to determine the MIME type of the file being read by using the file’s extension to make an educated guess. You can also use the output **Encoding** and output **MIME Type** optional parameters to force the encoding and MIME type.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Configuration** |  The name of the configuration to use.  
The path to the file to be read.  
Whether or not to lock the file.  
**Time Between Size Check**  
**Time Between Size Check Unit** |  Enumeration, one of:
  * NANOSECONDS
  * MICROSECONDS
  * MILLISECONDS
  * SECONDS
  * MINUTES
  * HOURS

  
**Output Mime Type** |  The MIME type of the payload that this operation outputs.  
**Output Encoding** |  The encoding of the payload that this operation outputs.  
**Streaming Strategy** | 
  * Repeatable In Memory Stream
  * Repeatable File Store Stream
  * non-repeatable-stream

|  Configure to use repeatable streams.  
**Target Variable** |  The name of a variable to store the operation’s output.  
**Target Value** |  An expression to evaluate against the operation’s output and store the expression outcome in the target variable.  
**Reconnection Strategy** | 
  *   * Reconnect Forever

|  A retry strategy in case of connectivity errors.  
#### Output
Attributes Type |  Ftp File Attributes  
---|---  
### For Configurations
  * Default Configuration


#### Throws
  * FTP:FILE_LOCK
  * FTP:RETRY_EXHAUSTED
  * FTP:ILLEGAL_PATH
  * FTP:ACCESS_DENIED
  * FTP:CONNECTIVITY


### Rename
`<ftp:rename>`
Renames the file to which the path points to the value provided in the New Name parameter. This argument should not contain any path separator, or an FTP:ILLEGAL_PATH error will be thrown.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Configuration** |  The name of the configuration to use.  
The path to the file to be renamed.  
The file’s new name.  
Whether or not to overwrite the file if the target destination already exists.  
**Reconnection Strategy** | 
  *   * Reconnect Forever

|  A retry strategy in case of connectivity errors.  
### For Configurations
  * Default Configuration


#### Throws
  * FTP:FILE_ALREADY_EXISTS
  * FTP:RETRY_EXHAUSTED
  * FTP:ILLEGAL_PATH
  * FTP:ACCESS_DENIED
  * FTP:CONNECTIVITY


### Write
`<ftp:write>`
Writes the content into the file the path points to.
If the directory to which the file is attempting to be written doesn’t exist, then the operation will either throw an FTP:ILLEGAL_PATH error, or create a new folder, depending on the value of **Create parent directories**. If the file already exists, then the behavior depends on the supplied mode.
This operation also supports locking depending on the value of the lock argument, and follows the same rules and considerations as described in the read operation.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Configuration** |  The name of the configuration to use.  
The path of the file to be written to.  
The content to be written into the file. Defaults to the current Message payload.  
**Encoding (DEPRECATED)** |  When content is a String, this attribute specifies the encoding to use when writing. If not set, then it defaults to `FileConnectorConfig#getDefaultWriteEncoding()`.  
**Create Parent Directories** |  Whether or not to attempt creating any parent directories that don’t exist.  
Whether or not to lock the file.  
**Write Mode** |  Enumeration, one of:
  * OVERWRITE
  * APPEND
  * CREATE_NEW

|  A file **Write Mode**.  
**Reconnection Strategy** | 
  *   * Reconnect Forever

|  A retry strategy in case of connectivity errors.  
### For Configurations
  * Default Configuration


#### Throws
  * FTP:FILE_LOCK
  * FTP:ILLEGAL_CONTENT
  * FTP:FILE_ALREADY_EXISTS
  * FTP:RETRY_EXHAUSTED
  * FTP:ILLEGAL_PATH
  * FTP:ACCESS_DENIED
  * FTP:CONNECTIVITY


## Sources
### On New or Updated File
`<ftp:listener>`
Polls a directory and looks for files that have been created in it. One message is generated for each file that is found.
The key part of this functionality is how to determine that a file is actually new. There are three strategies for that:
  * Set the **Auto delete** parameter to `true` to delete each file after it is processed, which causes all files obtained in the next poll to be necessarily new.
  * Set the **Move to directory** parameter to move each file to a different directory after it is processed, which achieves the same effect as **Auto delete** but without losing the file.
  * Use **Watermark enabled** to pick only files that have been created or updated after the last poll was executed.
|  A file **Write Mode**.  
**Reconnection Strategy** | 
  *   * Reconnect Forever

|  A retry strategy in case of connectivity errors.  
### For Configurations
  * Default Configuration


#### Throws
  * FTP:FILE_LOCK
  * FTP:ILLEGAL_CONTENT
  * FTP:FILE_ALREADY_EXISTS
  * FTP:RETRY_EXHAUSTED
  * FTP:ILLEGAL_PATH
  * FTP:ACCESS_DENIED
  * FTP:CONNECTIVITY


## Sources
### On New or Updated File
`<ftp:listener>`
Polls a directory and looks for files that have been created in it. One message is generated for each file that is found.
The key part of this functionality is how to determine that a file is actually new. There are three strategies for that:
  * Set the **Auto delete** parameter to `true` to delete each file after it is processed, which causes all files obtained in the next poll to be necessarily new.
  * Set the **Move to directory** parameter to move each file to a different directory after it is processed, which achieves the same effect as **Auto delete** but without losing the file.
  * Use **Watermark enabled** to pick only files that have been created or updated after the last poll was executed.


You can also use a matcher for additional filtering of files.
#### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
**Configuration** |  The name of the configuration to use.  
The directory that contains polled files.  
Whether or not to also poll files contained in subdirectories.  
A matcher used to filter events on files that do not meet the matcher’s criteria.  
**Watermark Enabled** |  Controls whether or not to do watermarking, and if so, if the watermark should consider the file’s modification or creation timestamps.  
**Time Between Size Check** |  Wait time (in milliseconds) between size checks to determine if a file is ready to be read. This allows a file write to complete before processing. You can disable this feature by omitting a value. When enabled, Mule performs two size checks, waiting the specified time between calls. If both checks return the same value, the file is ready to be read.  
**Time Between Size Check Unit** |  Enumeration, one of:
  * NANOSECONDS
  * MICROSECONDS
  * MILLISECONDS
  * SECONDS
  * MINUTES
  * HOURS

|  A **Time unit** that qualifies the **Time between size check** attribute.  
**Output Mime Type** |  The MIME type of the payload that this operation outputs.  
**Output Encoding** |  The encoding of the payload that this operation outputs.  
**Primary Node Only** |  Whether this source should be executed only on the primary node when running in a Cluster.  
**Scheduling Strategy** |  scheduling-strategy |  Configures the scheduler that triggers the polling.  
**Streaming Strategy** | 
  * Repeatable In Memory Stream
  * Repeatable File Store Stream
  * non-repeatable-stream

|  Configure to use repeatable streams.  
**Redelivery Policy** |  Redelivery Policy |  Defines a policy for processing the redelivery of the same message.  
**Reconnection Strategy** | 
  *   * Reconnect Forever

|  A retry strategy in case of connectivity errors.  
**Auto Delete** |  Whether or not each file should be deleted after processing.  
**Move To Directory** |  If provided, each processed file will be moved to a directory pointed to by this path.  
This parameter works in tandem with **Move to directory**. Use this parameter to enter the name under which the file should be moved. Do not set this parameter if **Move to directory** hasn’t been set as well.  
**Apply Post Action When Failed** |  Whether any of the post actions (autoDelete and moveToDirectory) should also be applied in case the file failed to be processed. If set to `false`, no failed files will be moved or deleted.  
Enables you to overwrite the target file when the destination file has the same name.  
#### Output
Attributes Type |  Ftp File Attributes  
---|---  
### For Configurations
  * Default Configuration


## Types
### Reconnection
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Fails Deployment** |  When the application is deployed, a connectivity test is performed on all connectors. If set to `true`, deployment fails if the test doesn’t pass after exhausting the associated reconnection strategy.  
**Reconnection Strategy** | 
  *   * Reconnect Forever

|  The reconnection strategy to use.  
### Reconnect
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
Frequency | How often in milliseconds to reconnect.  
How many reconnection attempts to make.  
blocking | If false, the reconnection strategy runs in a separate, non-blocking thread. Note: This field is configurable only in XML.  
### Reconnect Forever
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
Frequency | How often in milliseconds to reconnect.  
blocking | If false, the reconnection strategy runs in a separate, non-blocking thread. Note: This field is configurable only in XML.  
### Pooling Profile
The natural behavior of the connection pooling mechanism is to avoid creating connections all the time. The mechanism does not actually close managed connections; instead, the pool retrieves released connections and keeps them active for reuse when a user needs them.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Max Active** |  Controls the maximum number of connections that can be borrowed from a session at one time. When set to a negative value, there is no limit to the number of components that can be active at one time. When maxActive is exceeded, the pool is said to be exhausted.  
Controls the maximum number of connections that can sit idle in the pool at any time. When set to a negative value, there is no limit to the number of connections that can be idle at one time.  
Specifies the number of milliseconds to wait for a pooled component to become available when the pool is exhausted and the **Exhausted action** is set to `WHEN_EXHAUSTED_WAIT`.  
**Min Eviction Millis** |  Determines the minimum amount of time an object can sit idle in the pool before it is eligible for eviction. When non-positive, no objects will be evicted from the pool due to idle time alone.  
**Eviction Check Interval Millis** |  Specifies the number of milliseconds between runs of the object evictor. When non-positive, no object evictor is executed.  
**Exhausted Action** |  Enumeration, one of:
  * WHEN_EXHAUSTED_GROW
  * WHEN_EXHAUSTED_WAIT
  * WHEN_EXHAUSTED_FAIL

|  Specifies the behavior of the Mule component pool when the pool is exhausted. Possible values are:
  * WHEN_EXHAUSTED_FAIL Throws a `NoSuchElementException`.
  * WHEN_EXHAUSTED_WAIT Blocks by invoking `Object.wait(long)` until a new or idle object is available.
  * WHEN_EXHAUSTED_GROW Creates a new Mule instance and returns it, essentially making **Max active** meaningless.

If a positive **Max wait** value is supplied, it will block for that many milliseconds at most, after which a `NoSuchElementException` will be thrown. If maxThreadWait is a negative value, it will block indefinitely.  
**Initialisation Policy** |  Enumeration, one of:
  * INITIALISE_NONE
  * INITIALISE_ONE
  * INITIALISE_ALL

|  Determines how components in a pool should be initialized. The possible values are:
  * INITIALISE_NONE Will not load any components into the pool on startup.
  * INITIALISE_ONE Will load one initial component into the pool on startup.
  * INITIALISE_ALL Will load all components in the pool on startup.

  
### Expiration Policy
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Max Idle Time** |  A scalar time value for the maximum amount of time a dynamic configuration instance should be allowed to be idle before it’s considered eligible for expiration.  
Enumeration, one of:
  * NANOSECONDS
  * MICROSECONDS
  * MILLISECONDS
  * SECONDS
  * MINUTES
  * HOURS
If a positive **Max wait** value is supplied, it will block for that many milliseconds at most, after which a `NoSuchElementException` will be thrown. If maxThreadWait is a negative value, it will block indefinitely.  
**Initialisation Policy** |  Enumeration, one of:
  * INITIALISE_NONE
  * INITIALISE_ONE
  * INITIALISE_ALL

|  Determines how components in a pool should be initialized. The possible values are:
  * INITIALISE_NONE Will not load any components into the pool on startup.
  * INITIALISE_ONE Will load one initial component into the pool on startup.
  * INITIALISE_ALL Will load all components in the pool on startup.

  
### Expiration Policy
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Max Idle Time** |  A scalar time value for the maximum amount of time a dynamic configuration instance should be allowed to be idle before it’s considered eligible for expiration.  
Enumeration, one of:
  * NANOSECONDS
  * MICROSECONDS
  * MILLISECONDS
  * SECONDS
  * MINUTES
  * HOURS

|  A time unit that qualifies the maxIdleTime attribute.  
### Ftp File Attributes
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Regular File**  
**Symbolic Link**  
### Matcher
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Timestamp Since** |  Files created before this date are rejected. If no creation date is available, the file will be processed. Any timezone specification in this value is ignored and the Mule server’s time zone is used instead.  
**Timestamp Until** |  Files created after this date are rejected. If no creation date is available, the file will be processed. Any timezone specification in this value is ignored and the Mule server’s time zone is used instead.  
**Not Updated In The Last** |  Minimum time that should pass since a file was updated in order for it to not be rejected. This attribute works in tandem with #timeUnit.  
**Updated In The Last** |  Maximum time that should pass since a file was updated in order to not be rejected. This attribute works in tandem with #timeUnit.  
Enumeration, one of:
  * NANOSECONDS
  * MICROSECONDS
  * MILLISECONDS
  * SECONDS
  * MINUTES
  * HOURS

|  A #notUpdatedInTheLast attributes. ```
Defaults to SECONDS
```
  
**Case Sensitive** |  Enables you to configure an external file system matcher as case sensitive or insensitive.  
**Filename Pattern**  
**Path Pattern**  
**Directories** |  Enumeration, one of:
  * REQUIRE
  * INCLUDE
  * EXCLUDE

  
**Regular Files** |  Enumeration, one of:
  * REQUIRE
  * INCLUDE
  * EXCLUDE

  
Enumeration, one of:
  * REQUIRE
  * INCLUDE
  * EXCLUDE

  
### Repeatable In Memory Stream
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Initial Buffer Size** |  The amount of memory to allocate to consume the stream and provide random access to it. If the stream contains more data than can be fit into this buffer, then the buffer expands according to the **Buffer size increment** attribute, with an upper limit of maxInMemorySize.  
**Buffer Size Increment** |  This is by how much the buffer size expands if it exceeds its initial size. Setting a value of zero or lower means that the buffer should not expand, meaning that a `STREAM_MAXIMUM_SIZE_EXCEEDED` error is raised when the buffer gets full.  
**Max Buffer Size** |  The maximum amount of memory to use. If more than that is used then a `STREAM_MAXIMUM_SIZE_EXCEEDED` error is raised. A value lower than, or equal to, zero means no limit.  
**Buffer Unit** |  Enumeration, one of: |  The unit in which all these attributes are expressed.  
### Repeatable File Store Stream
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**In Memory Size** |  Defines the maximum memory that the stream should use to keep data in memory. If more than that is consumed then it will start to buffer the content on disk.  
**Buffer Unit** |  Enumeration, one of: |  The unit in which maxInMemorySize is expressed.  
### Redelivery Policy
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Max Redelivery Count** |  The maximum number of times a message can be redelivered and processed unsuccessfully before triggering a process-failed-message.  
**Use Secure Hash** |  Whether to use a secure hash algorithm to identify a redelivered message.  
**Message Digest Algorithm** |  The secure hashing algorithm to use. If not set, the default is SHA-256.  
**Id Expression** |  Defines one or more expressions to use to determine when a message has been redelivered. This property may only be set if **Use secure hash** is false.  
**Object Store** |  Object Store |  The object store where the redelivery counter for each message is going to be stored.  
### Repeatable In Memory Iterable
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**Initial Buffer Size** |  The amount of instances that is initially be allowed to be kept in memory to consume the stream and provide random access to it. If the stream contains more data than can fit into this buffer, then the buffer expands according to the **Buffer size increment** attribute, with an upper limit of maxInMemorySize. Default value is 100 instances.  
**Buffer Size Increment** |  This is by how much the buffer size expands if it exceeds its initial size. Setting a value of zero or lower means that the buffer should not expand, meaning that a `STREAM_MAXIMUM_SIZE_EXCEEDED` error is raised when the buffer gets full. Default value is 100 instances.  
**Max Buffer Size** |  The maximum amount of memory to use. If more than that is used then a `STREAM_MAXIMUM_SIZE_EXCEEDED` error is raised. A value lower than, or equal to, zero means no limit.  
### Repeatable File Store Iterable
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
**In Memory Objects** |  The maximum amount of instances that will be kept in memory. If more than that is required, then it will start to buffer the content on disk.  
**Buffer Unit** |  Enumeration, one of: |  The unit in which maxInMemorySize is expressed  
### HTTP Tunnel Proxy
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
The FTP proxy server host, such as www.mulesoft.com, localhost, or 192.168.0.1, etc.  
Port number of the FTP proxy server to connect.  
Username | Username for the FTP proxy server. Required if the proxy server is authenticated.  
Password | Password for the FTP proxy server. Required if the proxy server is authenticated.  
### HTTP Tunnel Proxy
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
Tls Context Factory  
The FTP proxy server host, such as www.mulesoft.com, localhost, or 192.168.0.1, etc.  
Port number of the FTP proxy server to connect.  
Username | Username for the FTP proxy server. Required if the proxy server is authenticated.  
Password | Password for the FTP proxy server. Required if the Proxy server is authenticated.  
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
Enabled Protocols | A comma separated list of protocols enabled for this context.  
Enabled Cipher Suites | A comma separated list of cipher suites enabled for this context.  
Trust Store  
Key Store  
Revocation Check | 
  * Standard Revocation Check
  * Custom Ocsp Responder
### Truststore
Configures the TLS truststore.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
Path to the truststore. Mule resolves the path relative to the current classpath and file system.  
Password | Password used to protect the truststore.  
Type of truststore.  
Algorithm | Encryption algorithm that the truststore uses.  
Insecure | If `true`, Mule stops performing certificate validations. Setting this to `true` can make connections vulnerable to attacks.  
### Key Store
Configures the keystore for the TLS protocol. The keystore you generate contains a private key and a public certificate.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
Path to the keystore. Mule resolves the path relative to the current classpath and file system, if possible.  
Type of keystore used.  
Alias of the key to use when the keystore contains multiple private keys. By default, Mule uses the first key in the file.  
Key Password | Password used to protect the private key.  
Password | Password used to protect the key store.  
Algorithm | Encryption algorithm that the keystore uses.  
### Standard Revocation Check
Configures standard revocation checks for TLS certificates.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
Only End Entities | Verify the last element of the certificate chain only.  
Prefer Crls | Try CRL instead of OCSP first.  
No Fallback | Do not use the secondary checking method, which is the method not specified in the Prefer Crls field.  
Soft Fail | Avoid verification failure when the revocation server cannot be reached or is busy.  
### Custom Ocsp Responder
Configures a custom OCSP responder for certification revocation checks.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
URL of the OCSP responder.  
Cert Alias | Alias of the signing certicate for the OCSP response. If specified, the alias must be in the truststore.  
### Crl File
Specifies the location of the certification revocation list (CRL) file.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
Path to the CRL file.  
## See Also
  * FTP Connector Release Notes
  * MuleSoft Help Center