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)