Get a file with SFTP

Description

The Get a file with SFTP action retrieves one or more files from an FTP server using the Secure FTP protocol.

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

If you run into a Algorithm Negotiation Fail error when connecting to your SFTP server, check the Algorithm Negotiation Fail Error section at the end of this page.

Options

General tab

Option Description

Action name

The name of the workflow action.

SFTP-server name / IP

The name of the SFTP server or the IP address

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 type of proxy to use for the connection. The available options are:

  • blank (no proxy, default)

  • HTTPS

  • SOCKS5

Proxy host

The proxy host to use for the connection

Proxy username

The proxy username to use for the connection

Proxy password

The proxy password to use for the connection

Compression

The compression to use for this SFTP connection. The available options are

  • none (default)

  • zlib

Files tab

Option Description

Source files

Copy previous results to args

If the files to retrieve are dynamically generated by another pipeline, check this option. Hop will select files list from previous result rows (not result files) and search for these files.

The first field in the results will be used for the search and must contain the file names only, not full or partial paths: all files will be searched in the remote directory defined below.

Remote Directory

The remote directory on the SFTP server from which the files will be retrieved. Use the Test folder button to connect to the remote server and validate that the folder exists.

Wildcard (regular expression)

Specify a regular expression here if you want to select multiple files. This field is disabled if the Copy previous results to args flag above is enabled.

Examples of regular expressions:

.*txt$   : get all text files
A.*[ENG:0-9].txt  : files tarting with A, ending with a number and .txt

Remove files after retrieval

Check this flag to delete the remote file after it is downloaded. Be aware that usually this operation cannot be undone!

Target files

Target Directory

The directory on the machine on which Hop runs in which you want to place the transferred files

Create target folder

Check this option if the destination folder does not exist and should be created.

Add filenames to result

If checked the information about downloaded files is added to the result files stream.

Algorithm Negotiation Fail Error

If your Get a file with SFTP action returns an error message like the one below, you (or the server you are connecting to) are probably using key types that are considered unsafe in the dependencies used by this action in recent Apache Hop versions.

com.jcraft.jsch.JSchhAlgoNegoFailException: Algorithm negotiation fail…​

The better and more secure option is to upgrade your keys to more secure types. However, you can still connect to this SFTP server by adding the options below to the HOP_OPTIONS variable in your startup command (in hop-gui.sh/bat or hop-run.sh/bat, or in your HOP_OPTIONS environment variable):

-Djsch.client_pubkey=ssh-rsa,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256 -Djsch.server_host_key=ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256,ssh-rsa