Aspera on Demand with Cargo

Cargo on APOD

This article provides the steps on how to install and configure Cargo on Aspera on Demand for AWS so that Cargo will download packages and deposit them into an S3 bucket.


  1. SOD/APOD up and running
  2. You have a working account on a Faspex Server
    Note: In the demo below, I use the ‘cargo’ account on 
  3. A transfer account runs in bash shell with S3 document root.  Incoming Transfers authorization should set to "allow" for this transfer account.


1) Log into your Aspera server as the user root.  If you don't know how, please read this article

2) Download and install Cargo 64 bit:


3) Install RPM

rpm –ivh aspera-cargod-

4) Configure Cargo

vi /opt/aspera/cargod/etc/asperacargo.conf

Here is a sample minimal required Configuration file:

<?xml version="1.0" encoding="UTF-8"?>
<conf version="1">
NOTE: The password will be obfuscated once Cargo is invoked.

5) Verify Cargo works as expected

a) Launch Cargo

/opt/aspera/cargod/bin/asperacargod &

b) Send a Faspex package to user cargo via Faspex Web UI
c) Check whether or not the package is automatically downloaded by Cargo

NOTE: You should see a new folder with  the format "user'@'Server' in the / of your file system.

6) Once you confirm Cargo is set up correctly, change the following permissions on your file system so that Cargo can be run as non root user:

chmod 777 /opt/aspera/cargod/var
chmod 777 /opt/aspera/cargod/var/filelists
chmod 777 /opt/aspera/cargod/var/log
chmod 666 /opt/aspera/cargod/var/log/*

7) Create a new transfer user (e.g. asp1) from your APOD Console  and set asp1 runs in bash shell.

NOTE:  To set the users shell, you will need to edit /etc/passwd

8) Specify an S3 docroot for your user (e.g. asp1) in the Cargod aspera.conf as well as the main aspera.conf file

# vi /opt/aspera/cargod/etc/aspera.conf
NOTE: Once this file has been edited, you need to add a similar entry into the main aspera.conf too.
# vi /opt/aspera/etc/aspera.conf

Here is a sample of a working aspera.conf with some S3 ID and bucket substitutions:

<?xml version='1.0' encoding='UTF-8'?>
<CONF version="2">

9) Set the permissions on asperacargo.conf so that non root users have access:

chmod 666 /opt/aspera/cargod/etc/asperacargo.conf

10) Link ascp to the system default ascp

mv /opt/aspera/cargod/bin/ascp /opt/aspera/cargod/bin/ascp.ORIG
ln –s /opt/aspera/bin/ascp /opt/aspera/cargod/bin/ascp

11) Login as the user with the S3 document root (e.g. asp1)  In this example, you can see that I switch from root to the user 'asp1'.  

NOTE: If the sudo command below fails, please verify that you have set the asp1 user to use the bash shell (rather than aspshell - which prevents users from accessing the command line on the system).
# sudo su – asp1

12) In order to have ascp respects the local document root configurations, set the environment variable: ASPERA_SCP_DOCROOT by adding the following to the user's ~/.bash_profile.  Log out as asp1 and log back in as asp1 to activate the environment variable.


13) Create a default landing folder in your S3 docroot, with the syntax user@host. In my example, I have ‘’. You can use S3 Management Console in AWS,  Aspera SCP GUI (P2P or ES), or the S3 browser to create this folder.

14) Remove the database file and start Cargo in the background.  NOTE: Cargo must be run by the transfer user with S3 docroot.

# rm /opt/aspera/cargod/var/asperacargod.dat*
# /opt/aspera/cargod/bin/asperacargod &
Powered by Zendesk