generateHeaders = function(signatureConstructor, signature, promise) {
            var headers = signatureConstructor.getHeaders();

            if (options.signatureSpec.version === 4) {
                headers.Authorization = qq.s3.util.V4_ALGORITHM_PARAM_VALUE +
                    " Credential=" + options.signatureSpec.credentialsProvider.get().accessKey + "/" +
                    qq.s3.util.getCredentialsDate(signatureConstructor.getRequestDate()) + "/" +
                    options.signatureSpec.region + "/" +
                    "s3/aws4_request," +
                    "SignedHeaders=" + signatureConstructor.getSignedHeaders() + "," +
                    "Signature=" + signature;
            }
            else {
                headers.Authorization = "AWS " + options.signatureSpec.credentialsProvider.get().accessKey + ":" + signature;
            }

            promise.success(headers, signatureConstructor.getEndOfUrl());
        }
Handles signature determination for HTML Form Upload requests and Multipart Uploader requests (via the S3 REST API).

If the S3 requests are to be signed server side, this module will send a POST request to the server in an attempt
to solicit signatures for various S3-related requests.  This module also parses the response and attempts
to determine if the effort was successful.

If the S3 requests are to be signed client-side, without the help of a server, this module will utilize CryptoJS to
sign the requests directly in the browser and send them off to S3.

@param o Options associated with all such requests
@returns {{getSignature: Function}} API method used to initiate the signature request.
@constructor