diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..723ef36 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea \ No newline at end of file diff --git a/aws.js b/aws.js index 27d2e75..a82d662 100644 --- a/aws.js +++ b/aws.js @@ -49,27 +49,43 @@ var AWS = (function() { throw "Error: S3 Bucket undefined"; } - if(payload == undefined) { - payload = ""; - } else if(typeof payload !== "string") { - payload = JSON.stringify(payload); - } - var Crypto = loadCrypto(); var d = new Date(); var dateStringFull = String(d.getUTCFullYear()) + addZero(d.getUTCMonth()+1) + addZero(d.getUTCDate()) + "T" + addZero(d.getUTCHours()) + addZero(d.getUTCMinutes()) + addZero(d.getUTCSeconds()) + 'Z'; var dateStringShort = String(d.getUTCFullYear()) + addZero(d.getUTCMonth()+1) + addZero(d.getUTCDate()); - var payload = payload || ''; - var hashedPayload = Crypto.SHA256(payload); var method = method || "GET"; var uri = uri || "/"; var host = getHost(service, region, bucket); var headers = headers || {}; var request; var query; + var contentType = options.contentType || null; + if(method.toLowerCase() == "post") { + if(payload == undefined) { + payload = ""; + } else if(typeof payload !== "string") { + switch (contentType) + { + case 'application/x-www-form-urlencoded': + var payloadParts = []; + + Object.keys(payload).sort(function(a,b) { return a