FC++  v0.9.0-9e9b65
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 9 # 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)
display
FileCatalyst C API Written by Stéphane stephanecharette gmail info filecatalyst com Contact Unlimi Tech Software Inc for FileCatalyst and FC license details OpenSSL with or without are permitted provided that the following conditions are this list of conditions and the following disclaimer Redistributions in binary form must reproduce the above copyright this list of conditions and the following disclaimer in the documentation and or other materials provided with the distribution Boost free of to any person or organization obtaining a copy of the software and accompanying documentation covered by this display
Definition: 03_licence.txt:29
password
const std::string password
Definition: example001.cpp:20