AWS TransferManager will upload big files asynchronously in multiple parts. It also supports upload progress. See more from here: http://docs.aws.amazon.com/AmazonS3/latest/dev/HLuploadFileJava.html