////
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at
  http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
////
:documentationPath: /workflow/actions/
:language: en_US
:description: The Put files with SFTP action pushes one or more files to an FTP server using the Secure FTP protocol.

= Put a file with SFTP

== Description

The `Put a file with SFTP` action pushes one or more files to an FTP server using the Secure FTP protocol.

The action returns true if the specified file(s) or pattern were uploaded successfully, false it there were problems uploading the file(s).

== Options

=== General Tab

[options="header", width="90%", cols="1,3"]
|===
|Option|Description
|Workflow action name|The name of the workflow action.
*Note*: This name has to be unique in a single workflow.
A workflow action can be placed several times on the canvas, however it will be the same workflow action.
|SFTP-server name (IP)|The name of the SFTP server or the IP address.
|SFTP port|The TCP port to use.
This is usually 22.
|User name|The user name to log into the SFTP server.
|Password|The password to log into the SFTP server.
|Use private keyfile|Indicates whether or not a private keyfile is to be used.
|Private key filename|If "Use private keyfile" is checked then this field is enabled.
The file can be browsed to using the browse button to the right of the field.
The Private Key should be in the PEM file format.
For PuTTY-based Private Keys, use PuTTYgen to convert the file into "OpenSSH" format.
|Key passphrase|If "Use private keyfile" is checked then this field is enabled.
If a passphrase is required then enter it here.
|Proxy type|The proxy type (SOCKS5, HTTP) of the specified proxy server.
|Proxy host|The host name or the IP address of the proxy server.
|Proxy port|The port of the proxy server to connect to.
|Proxy username|The username to log into the proxy server as.
|Proxy password|The password associated with "Proxy username".
|Compression a|The compression to use in the file transfer.
Current options are

* none (default)
* zlib

|===

=== Files tab

[options="header", width="90%", cols="1,3"]
|===
|Option|Description
2+Source (local) files
|Copy previous results to args|If files to send are dynamically generated by another workflow or if you want to identify files to sent, check this option.
Hop will select files list from previous result rows (not result files, see next option) and send theses files.
If the file can not be found, Hop will ignore it.
|Copy previous result files to args|If files to send are dynamically generated by another pipeline or workflow action or if you want to identify files to sent, please check this option.
Hop will select files from previous files result action and send theses files.
If the file can not be found, Hop will ignore it.
|Local directory|The directory on the machine on which Hop runs from which you want to ftp the files from
|Wildcard (regular expression) a|Specify a regular expression here if you want to select multiple files.
For example:

[source,bash]
----
.*txt$   : get all text files
A.*[ENG:0-9].txt  : files tarting with A, ending with a number and .txt
----
|Success when no file|Check this option if the workflow action has to success when there is no files to process otherwise the workflow will fail.
|After SFTP Put a|Action to take after the file is transferred. The available options are
* Do nothing (default)
* Delete file
* Move file to
|Destination folder|Enabled if the `After SFTP Put` option above is set to `Move file to`.
The destination on the source file for the move is specified here.
Use to browse button to browse to destination folder.
|Create destination folder|Enabled if "After SFTP Put" is set to "Move file to".
If the "Destination folder" does not exists check this option to create it.
|Add filename to to result|Enabled if "After SFTP Put" is seet to "Do nothing".
If checked the name of the file is added to the result stream.
2+|Target (remote) folder
|Remote directory|The remote directory on the SFTP server to which we put the files.
Use the "test folder" button to connect to the remote server and validate that the folder exists.
|Create folder|Check this option if the destination folder does not exist and should be created.
|===
