Use the java.io.File based s3 putObject API.
This mitigates any "com.amazonaws.AmazonClientException: Unable to execute HTTP request: Input stream cannot be reset as…" errors, since the File based internally uses a resettable stream implementation.
See thread in AWS forum: https://forums.aws.amazon.com/thread.jspa?threadID=66753