Setting Up Pre/Post Processing

HST Server can be configured to run scripts that are triggered by session start, session stop, file start, and file stop.

Important: The "File Pre- and Post-Processing (Prepost)" feature is deprecated and will be removed from HST Server and HST Endpoint for versions 4.0 and onward. Customers should use Inline File validation with Lua (Inline File Validation with Lua Script) or an External URL validator (Out-of-Transfer File Validation) for pre-post processing features.

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

/opt/aspera/var/

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.

Environment Variables: Aspera has 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.

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. 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
    ...