FC++  v0.7.1-1067
FileCatalyst Fast File Transfers - C++ Library
Using FCCL

The fccl command-line tool is built using the FC++ API.

It is a pure C++ application which may be used to upload or download files from a Java-based FileCatalyst FTP server, or a normal FTP server.

  • On Linux, fccl is installed as /usr/bin/fccl.
  • On Windows, fccl is installed as C:\Program Files\fcpp\bin\fccl.exe.

Since fccl is written in C++, it doesn't require a Java VM, but there may be several other requirements such as OpenSSL and (depending on the operating system) Boost. fccl can use either the usual TCP/FTP protocol, or the accelerated FileCatalyst UDP protocol.

Note
The C++ tool fccl only supports a subset of the Java-based CL tool from FileCatalyst. Most of the command-line parameters are exactly the same between the Java and C++ version of fccl.

FCCL cli examples

Example uses of the fccl command-line tool:

  • Upload a file using UDP mode:
    fccl -upload -mode udp -host 192.168.99.8 -user bob -passwd test -file backup.zip -remotedir /incoming -bandwidth 35000 -startrate 20000 -overwrite -numencoders 5
  • Download a file using TCP (traditional FTP) mode:
    fccl -download -mode tcp -host ftp.example.com -user doug -passwd abc123 -file diskimage.iso -remotedir /office/images/ -localdir /tmp/ -bandwidth 70000 -startrate 50000 -retry 5 -waitretry 15 -autoresume -overwrite
  • Read arguments from a file, and combine them with some additional command-line parameters:
    fccl --verify --args args.txt --bandwidth 50000
  • Upload a file using UDP+AES encryption (TCP control channel will also be encrypted using SSL):
    fccl --ssl --mode udp --host 192.168.99.8 --port 990 --user bob --password test --file backup.zip --bandwidth 25000

See the sections named Getting Started and Summary for additional examples of using fccl.

Using fccl --args

The command-line parameters usually passed in to fccl can also be stored in a file. The command-line tool fccl can then be told to read these parameters in addition to parsing any command-line arguments.

Note
This method can be used to pass in the user credentials (username and password) which could otherwise be exposed if specified as normal command-line parameters.

When calling fccl, the parameter –args is passed in with the name of the text file to be parsed. For example:

fccl.exe --args testargs.txt

The text file can contain either a long list of parameters on a single line, or the parameters can be broken up on multiple lines with comments as needed. An example of a text file with fccl arguments could be:

# This file contains command-line parameters to FCCL.
# See the "--args" or "help" parameter for fccl.
#
# Blank lines, leading whitespace, and comments ("#") are ignored.
#
# Parameters are processed sequentially, and the file transfer is only
# initiated at the end once all parameters have been read. This means
# if a parameter is specified multiple times, or mutually exclusive
# parameters are specified (such as "mode tcp" and "mode udp") then
# only the last instance will be used.
#
#--download
--upload
--mode ftp # traditional FTP mode
--mode tcp # "ftp" and "tcp" modes are synonymous
--mode udp # FileCatalyst acceleration requires UDP mode
# only the last "mode" parameter encountered will have any effect
# --host demo.filecatalyst.com:21 --user bob --password secret
--host 192.168.99.133 --port 21 --user user --password test
# enable encrypted (TCP+SSL or UDP+AES) file transfers
# --ssl --port 990 --multithread 3
# bandwidth and startrate are both specified in Kbps
--bandwidth 800 --startrate 800
# --bandwidth 4000 --startrate 4000
# --bandwidth 95000 --startrate 95000
#--autoresume # resume transfer when possible
--overwrite # overwrite the destination
--verify # perform md5 checksum verification
--numencoders 25 # number of file encoders on the server
--showstats # display additional statistics (specific to FC++)
--file backup.zip # the file to transfer
--unitsize 1024 # default is 1 KiB packet size (UDP transfers)
--blocksize 4194304 # default is 4 MiB block size (UDP transfers)