public UploadResult upload(final String accountId, final String vaultName, final String archiveDescription, final File file)
            throws AmazonServiceException, AmazonClientException, FileNotFoundException {
        return upload(accountId, vaultName, archiveDescription, file, null);
    }
Uploads the specified file to Amazon Glacier for archival storage in the
specified vault in the specified user's account. For small archives, this
method will upload the archive directly to Glacier. For larger archives,
this method will use Glacier's multipart upload API to split the upload
into multiple parts for better error recovery if any errors are
encountered while streaming the data to Amazon Glacier.

@param accountId
           The ID for the account which owns the Glacier vault being
           uploaded to. To use the same account the developer is using to
           make requests to AWS, the value <code>"-"</code> can be used
           instead of the full account ID.
@param vaultName
           The name of the vault to upload to.
@param archiveDescription
           The description of the new archive being uploaded.
@param file
           The file to upload to Amazon Glacier.

@return The result of the upload, including the archive ID needed to
        access the upload later.

@throws AmazonServiceException
            If any problems were encountered while communicating with
            AWS.
@throws AmazonClientException
            If any problems were encountered inside the AWS SDK for Java
            client code in making requests or processing responses from
            AWS.
@throws FileNotFoundException
            If the specified file to upload doesn't exist.
aws-java-sdk-glacier/src/main/java/com/amazonaws/services/glacier/transfer/ArchiveTransferManager.java