A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/robinrodricks/FluentFTP/wiki/FXP-Server-To-Server below:

FXP Server To Server · robinrodricks/FluentFTP Wiki · GitHub

Tip: For detailed documentation refer to the IntelliSense tips that appear when you call a given API method.

How does FXP transfer work?

FXP is useful to reduce the overheads of data transfer by allowing you to transfer data directly from one server to another, bypassing the usual download/upload cycle. FXP works by creating a data connection between two FTP servers. FluentFTP can then instruct the source server to start transferring the file and instruct the target server to receive and store it.

You need to call the API in this order:

  1. You need to create an FtpClient instance and connect to the source server
  2. You need to create an FtpClient instance and connect to the target server
  3. Call source.TransferFile or source.TransferDirectory on the source FTP client and provide the target server's FtpClient to make an FXP connection between them
How is FXP implemented internally?

The order of FTP commands is as follows:

  1. We connect to the source server
  2. We clone the connection of the target server (and reconnect to it)
  3. Internally, we open a passive FXP connection between the source server and target server
  4. We maintain an FtpFxpSession object used to track the active FXP connection between 2 servers
  5. We instruct the source server to send the file, using the RETR FTP command
  6. We instruct the target server to store the file, using the STOR FTP command
  7. If the transfer is interrupted or disconnected midway, we resume transfer by instructing the source server to resume using REST and RETR FTP command and the target server to store append the file using APPE FTP command
  8. We can only check the file transfer progress by constantly sending the SIZE command on the target server to check how many bytes have transferred
  9. At the end of transferring the file we optionally verify the file using any mutually supported hash method and then call GetChecksum() on the source and target server and check if the hash matches
  10. Finally, we disconnect from the target server and the FtpFxpSession is disposed off
How do I tell if some files failed to transfer?

See this Folder Transfer FAQ to learn about the FtpResult objects returned by TransferDirectory.

What kinds of rules are supported and how do rules work?

See the Rules page for info and code examples.

How can I track the progress of folder transfers?

See this File Transfer FAQ for basic information on progress tracking. In addition to the basic properties you can access these properties in the FtpProgress object to find out which file is being transferred:


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4