public MultipleFileUpload uploadFileList(String bucketName, String virtualDirectoryKeyPrefix, File directory, List<File> files) {
        return uploadFileList(bucketName, virtualDirectoryKeyPrefix, directory, files, null);
    }
Uploads all specified files to the bucket named, constructing
relative keys depending on the commonParentDirectory given.
<p>
S3 will overwrite any existing objects that happen to have the same key,
just as when uploading individual files, so use with caution.
</p>
<p>
If you are uploading <a href="http://aws.amazon.com/kms/">Amazon Web Services
KMS</a>-encrypted objects, you need to specify the correct region of the
bucket on your client and configure Amazon Web Services Signature Version 4 for added
security. For more information on how to do this, see
http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#
specify-signature-version
</p>

@param bucketName
           The name of the bucket to upload objects to.
@param virtualDirectoryKeyPrefix
           The key prefix of the virtual directory to upload to. Use the
           null or empty string to upload files to the root of the
           bucket.
@param directory
           The common parent directory of files to upload. The keys
           of the files in the list of files are constructed relative to
           this directory and the virtualDirectoryKeyPrefix.
@param files
           A list of files to upload. The keys of the files are
           calculated relative to the common parent directory and the
           virtualDirectoryKeyPrefix.
aws-java-sdk-s3/src/main/java/com/amazonaws/services/s3/transfer/TransferManager.java