Skip to content

Exchanging Files with the FTP Adapter

Note: It is recommended that the Neuron adapter documentation be reviewed before running this sample. The documentation thoroughly describes each adapter individually and describes how to configure each one.

Overview

Neuron ESB can send and receive files over FTP. The adapter provides several options for connecting to FTP servers and receiving and sending files.

Solution

This sample consists of four adapter endpoints:

  • FileReceiveEndpoint – configured to receive files from a file location and publish then to the ESB. These files are routed to the FtpSendEndpoint.
  • FtpSendEndpoint – configured to send files to an FTP Server. This endpoint’s subscriber is configured to execute the Set FTP Filename Process that sets the filename of the outgoing file.
  • FtpReceiveEndpoint – configured to receive files from an FTP Server. These files are routed to the FileSendEndpoint
  • FileSendEndpoint – configured to send files to a file location. This endpoint’s subscriber is configured to execute the Set File Filename Process that sets the filename of the outgoing file.

The Set FTP Filename process contains a single code step that sets the only outbound dynamic property supported by the FTP adapter:

context.Data.SetProperty("ftp", "Filename", "log.txt");

The Set File Filename process accesses a number of inbound dynamic properties and uses the values to set the filename of the file written to the file system:

string server = String.Empty;
string port = String.Empty;
string username = String.Empty;
string folder = String.Empty;
string filename = String.Empty;
 
// Get the FTP Server
if (!context.Data.TryGetProperty("ftp", "Server", ref server))
       server = "localhost";
 
// Get the FTP Port
if (!context.Data.TryGetProperty("ftp", "Port", ref port))
       server = "21";
 
// Get the FTP Username
if (!context.Data.TryGetProperty("ftp", "Username", ref username))
       username = "Anonymous";
 
// Get the FTP Folder the message was read from
if (!context.Data.TryGetProperty("ftp", "Folder", ref folder))
       folder = "Home";
 
// Get the FTP Filename
if (!context.Data.TryGetProperty("ftp", "Filename", ref filename))
       filename = "FilenameNotFound.txt";
 
// Set the path the file adapter will write the file to based on FTP message properties
context.Data.SetProperty("file_out", "Path", "C:\\FileOut\\" + server + "\\" + port + "\\" + username + "\\" + folder + "\\");
 
// Set the filename the file adapter will use based on the metadata properties of the incoming FTP file.
context.Data.SetProperty("file_out", "Name", filename);

The FtpReceiveEndpoint is configured as follows:

FtpReceiveEndpoint

The FtpSendEndpoint is configured as follows:

FtpSendEndpoint

Running the Sample

Prerequisites

  1. To run this sample you must have access to an FTP server.

Open the Sample

To open this sample, see the topic Using the Neuron Samples and select the FTP Adapter sample.

Configure Adapter Endpoints

FTP Adapter Endpoints

You’ll need to verify the FTP Adapter endpoint settings.

  1. In the Neuron ESB Explorer, navigate to Connections->Endpoints->Adapter Endpoints.
  2. Select the adapter endpoint FtpReceiveEndpoint, and verify the Server NamePort, and Username/Password fields are valid for your FTP server.
  3. After modifying the adapter endpoint properties, click the Apply button.
  4. Repeat steps 1-3 for the FtpSendEndpoint endpoint.

File Adapter

Verify the Folder Path setting for both the FileReceiveEndpoint and FileSendEndpoint are configured correctly. The FileReceiveAdapter endpoint reads files from the folder C:\FileIn, and the FileSendEndpoint endpoint writes files to the folder C:\FileOut. If you would like the file adapter endpoint to save messages to a different location, modify the file adapter endpoint setting Folder Path.

Run the Sample

  1. This sample polls for files in C:\FileIn and sends them to the FTP server configured in the endpoint FtpSendEndpoint. It also polls for files in the folder on the FTP server configured in the endpoint FtpReceiveEndpoint and sends them to the folder C:\FileOut.
  2. To test sending to an FTP server, copy a file to C:\FileIn. The file will be read and sent to the configured FTP server.
  3. To test receiving from an FTP server, copy a file to the FTP server that Neuron is polling from. The file will be read and sent to C:\FileOut.
Was this article helpful?
Dislike 0
Previous: Receiving Email with the Exchange and POP3 Adapters