@Override
    public UploadPartResult uploadPart(UploadPartRequest uploadPartRequest)
            throws SdkClientException, AmazonServiceException {
        return crypto.uploadPartSecurely(uploadPartRequest);
    }
{@inheritDoc}

<p>
<b>NOTE:</b> Because the encryption process requires context from block
N-1 in order to encrypt block N, parts uploaded with the
AmazonS3EncryptionClient (as opposed to the normal AmazonS3Client) must
be uploaded serially, and in order. Otherwise, the previous encryption
context isn't available to use when encrypting the current part.
aws-java-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3EncryptionClient.java