Reporting Checksums

Point-to-Point can be configured to report source file checksums. To do so, both the server and client machines must be running Enterprise Server, Connect Server, or Point-to-Point Client version 3.4.2 or higher. Checksum reporting is disabled by default.

You can enable and configure checksum reporting on the server by using the following methods:

  • Edit aspera.conf with asconfigurator.
  • Set ascp command-line options (per-transfer configuration).

Command-line options override the settings in aspera.conf.

Table of Checksum Configuration Options

This table provides a summary of the checksum configuration options. See the following sections for instructions on setting the options by using asconfigurator, the application GUI, or in an ascp session.

asconfigurator Option

ascp Option

Description

file_checksum

--file-checksum=type

Enable checksum reporting and specify the type of checksum to calculate for transferred files.
  • any - Allow the checksum format to be whichever format the client requests. (Default in aspera.conf)
  • md5 - Calculate and report an MD5 checksum.
  • sha1 - Calculate and report a SHA-1 checksum.
  • sha256 - Calculate and report a SHA-256 checksum.
  • sha384 - Calculate and report a SHA-384 checksum.
  • sha512 - Calculate and report a SHA-512 checksum.
Note: The default value for the ascp option is none, in which case the reported checksum is the one configured on the server, if any.

file_manifest

--file_manifest=output

The file manifest is a file that contains a list of content that was transferred in a transfer session. The file name of the file manifest is automatically generated from the transfer session ID.

When set to none, no file manifest is created. (Default)

When set to text, a text file is generated that lists all files in each transfer session.

file_manifest_path

--file_manifest_path=path

The location where manifest files are written. The location can be an absolute path or a path relative to the transfer user's home directory. If no path is specified (default), the file is generated under the destination path at the receiver, and under the first source path at the sender.
Note: File manifests can be stored only locally. Thus, if you are using S3 or other non-local storage, you must specify a local manifest path.

Enabling checksum reporting by editing aspera.conf

To enable checksum reporting, run the following asconfigurator command:

# asconfigurator -x "set_node_data;file_checksum,checksum"

To enable and configure the file manifest where checksum report data is stored, run the following commands:

# asconfigurator -x "set_node_data;file_manifest,text"
# asconfigurator -x "set_node_data;file_manifest_path,filepath"

These commands create lines in aspera.conf as shown in the following example, where checksum type is md5, file manifest is enabled, and the path is /tmp.

<file_system>
    ...
    <file_checksum>md5</file_checksum>
    <file_manifest>text</file_manifest>
    <file_manifest_path>/tmp</file_manifest_path>
    ...
</file_system>

Enabling checksum reporting in an ascp session

To enable checksum reporting on a per-transfer-session basis, run ascp with the --file-checksum=hash option, where hash is sha1, md5, sha-512, sha-384, sha-256 or none.

Enable the manifest with the option --file-manifest=output where output is either text or none. You can set the path to the manifest file with the option --file-manifest-path=path.

For example:

# ascp --file-checksum=md5 --file-manifest=text --file-manifest-path=/tmp file aspera_user_1@189.0.202.39:/destination_path

Setting up a Pre/Post-processing Script

An alternative to enabling and configuring the file manifest to collect checksum reporting is to set up a pre/post-processing script to report the values.

The checksum of a transferred file is stored in the pre/post environment variable FILE_CSUM, which can be used in pre/post scripts to output file checksums. For example, the following script outputs the checksum to the file /tmp/cksum.log:

#!/bin/bash
if [ $TYPE == File ]; then
    if [ $STARTSTOP == Stop ]; then
        echo "The file is: $FILE" >> /tmp/cksum.log
        echo "The file checksum is: $FILE_CSUM" >> /tmp/cksum.log
        chmod 777 $FILE
    fi 
fi

For information on pre- and post-processing scripts and environment variables, see Pre- and Post-Processing (Prepost).