From ca9ae028102b28f0d0061d6bc4a3d97b9b0e7796 Mon Sep 17 00:00:00 2001 From: Sander van Leeuwen Date: Wed, 11 Dec 2019 10:42:29 +0100 Subject: [PATCH 1/2] Create .gitignore Ignore .idea --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore 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 From 2bfcf0b7e15252df3fd15be962cdbfd279b33a91 Mon Sep 17 00:00:00 2001 From: Sander van Leeuwen Date: Wed, 11 Dec 2019 11:02:04 +0100 Subject: [PATCH 2/2] Update aws.js Add option to supply desired content type to use in fetch(). Some AWS services don't support JSON in POST requests but expect raw form data. --- aws.js | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) 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