Setting Up Pre/Post Processing

Your Aspera server can execute a shell script from a pre-defined location:

The script is executed as a result of four transfer events:

  • Session start
  • Session end
  • Start of each individual file transfer in the session
  • End of each individual file transfer in the session

The aspera-prepost script can also execute additional shell scripts, Perl scripts, native executables, and Java programs. Aspera sets several environment variables for aspera-prepost that you can use in your own custom scripts. These environment variables are described in detail in Pre/Post Variables. Depending on usage, pre- and post-processing may consume a large amount of system resources. Be sure to evaluate your system performance and apply this feature appropriately.

CAUTION:
When creating pre- and post-processing scripts, unsafe scripts can compromise a server. As with CGI scripts, you should take precautions in testing a pre/post script before placing it into use (such as taint checking and ensuring proper quotes). You should also be aware of user permissions; pre/post scripts run as the user who authenticates the transfer. To prevent a pre/post script from performing an action with elevated or special user permissions, the script needs to check the $USER variable.

Follow the steps below to set up pre/post processing for your Aspera transfer product:

  1. Set up the shell script file.
    Locate the following file:
    /opt/aspera/var/aspera-prepost.disable

    This file runs the perl script aspera-notif.pl, which is an email notification script that sends emails (according to user-defined filters) to one or more recipients. Filters and lists are defined in the Aspera configuration file aspera.conf, which is located in /opt/aspera/etc.

    Copy the contents of aspera-prepost.disable into a new file, and name it as follows:

    /opt/aspera/var/aspera-prepost

    Ensure that execute privileges are enabled (at least r-xr-xr-x).

  2. Create your scripts.
    The pre/post processing script, aspera-prepost, can contain the pre/post processing steps, as well as execute other programs. Often, aspera-prepost checks for certain conditions (based on environment variables), and then calls a specific external executable based on those conditions. aspera-prepost is executed as a result of a the start and end of a transfer session, as well as the start and end of the transfer of an individual file in the session. You can use the variables TYPE and STARTSTOP to specify a particular state. For the complete list of all variables, see Pre/Post Variables.
  3. Include custom scripts in aspera-prepost.

    Custom scripts can be written directly into the script file aspera-prepost. For example, to add the custom script script1.pl to your pre/post script, insert the following line (into aspera-prepost):

    ...
    perl script1.pl
    ...