var expires = int(getTickCount() / 1000) + timeout; var signature = ""; var destUrl = ""; signature = getRequestSignature( uCase(verb), bucket, objectKey, expires ); if (requestType EQ "ssl" OR requestType EQ "regular") { destUrl = "http" & iif(requestType EQ "ssl", de("s"), de("")) & "://s3.amazonaws.com/#listAppend(bucket, objectKey, '/')#?AWSAccessKeyId=#variables.awsKey#&Signature=#urlEncodedFormat(signature)#&Expires=#expires#"; } else if (requestType EQ "cname") { destUrl = "http://#bucket#/#objectKey#?AWSAccessKeyId=#variables.awsKey#&Signature=#urlEncodedFormat(signature)#&Expires=#expires#"; } else { // vhost destUrl = "http://#bucket#.s3.amazonaws.com/#objectKey#?AWSAccessKeyId=#variables.awsKey#&Signature=#urlEncodedFormat(signature)#&Expires=#expires#"; } return destUrl; InternalError" ) OR (result.fileContent EQ "Connection Timeout" ) )> var stringToSign = ""; var algo = "HmacSHA1"; var signingKey = ""; var mac = ""; var signature = ""; stringToSign = uCase(verb) & chr(10) & contentMd5 & chr(10) & contentType & chr(10) & dateOrExpiration & chr(10) & iif(len(canonicalizedAmzHeaders) GT 0, de(canonicalizedAmzHeaders & chr(10)), de('')) & "/" & listAppend(bucket, objectKey, "/"); signingKey = createObject("java", "javax.crypto.spec.SecretKeySpec").init(variables.awsSecret.getBytes(), algo); mac = createObject("java", "javax.crypto.Mac").getInstance(algo); mac.init(signingKey); signature = toBase64(mac.doFinal(stringToSign.getBytes())); return signature;