|
33 | 33 | e.preventDefault(); |
34 | 34 | var file = document.getElementById("file1"); |
35 | 35 | var fileSize = file.files[0].size; |
| 36 | + var AUTH_INVALID_RESPONSE = "Invalid response from authenticationEndpoint. The SDK expects a JSON response with three fields i.e. signature, token and expire." |
36 | 37 | var statusEl = document.getElementById("status"); |
37 | 38 | statusEl.innerHTML = "Uploading..."; |
38 | 39 |
|
|
49 | 50 | } |
50 | 51 | }); |
51 | 52 |
|
52 | | - imagekit.upload({ |
53 | | - xhr: customXHR, // Use this if you want to track upload progress |
54 | | - file : file.files[0], |
55 | | - fileName : file.files[0].name || "test_image.jpg", |
56 | | - tags : ["test_tag_1"], |
57 | | - token: "!{signatureObj.token}", |
58 | | - signature: "!{signatureObj.signature}", |
59 | | - expire: "!{signatureObj.expire}" |
60 | | - //- token: "63b76592-e9be-428b-8fc7-d4e15aba7506", |
61 | | - //- expire: 1689917695, |
62 | | - //- signature: "7ddcf61b7e54036c88ba838a9bc86fa969eb1f5b" |
63 | | - //- extensions: [ |
64 | | - //- { |
65 | | - //- name: "aws-auto-tagging", |
66 | | - //- minConfidence: 80, |
67 | | - //- maxTags: 10 |
68 | | - //- } |
69 | | - //- ], |
70 | | - }, function(err, result) { |
71 | | - if (err) { |
72 | | - statusEl.innerHTML = "Error uploading image. "+ err.message; |
73 | | - console.log(err) |
74 | | - } else { |
75 | | - statusEl.innerHTML = "File Uploaded"; |
76 | | - var sampleTransformations = [{ HEIGHT: 300, WIDTH: 400}]; |
77 | | - srcUrl = result.url; |
78 | | - transformedURL = imagekit.url({ |
79 | | - src: srcUrl, |
80 | | - transformation : sampleTransformations |
81 | | - }); |
| 53 | + // Generating security parameters using authenticationEndpoint |
| 54 | + const securityParametersRequest = new XMLHttpRequest(); |
| 55 | + securityParametersRequest.timeout = 60000; |
| 56 | + var urlObj = new URL("!{authenticationEndpoint}"); |
| 57 | + securityParametersRequest.open('GET', urlObj.toString()); |
| 58 | + securityParametersRequest.ontimeout = function (e) { |
| 59 | + console.log(e.message); |
| 60 | + return statusEl.innerHTML = "Timeout generating security parameters. "+ e.message |
| 61 | + }; |
| 62 | + securityParametersRequest.onerror = function (e) { |
| 63 | + console.log(e.message) |
| 64 | + return statusEl.innerHTML = "Request to authenticationEndpoint failed due to network error."+ e.message |
| 65 | + } |
| 66 | + securityParametersRequest.onload = () => { |
| 67 | + if(securityParametersRequest.status === 200) { |
| 68 | + var securityParametersObj = JSON.parse(securityParametersRequest.response) |
| 69 | + |
| 70 | + if(!securityParametersObj || !securityParametersObj.token || !securityParametersObj.signature || !securityParametersObj.expire) { |
| 71 | + return statusEl.innerHTML = AUTH_INVALID_RESPONSE; |
| 72 | + } |
| 73 | + |
| 74 | + // Uploading image |
| 75 | + imagekit.upload({ |
| 76 | + xhr: customXHR, // Use this if you want to track upload progress |
| 77 | + file : file.files[0], |
| 78 | + fileName : file.files[0].name || "test_image.jpg", |
| 79 | + tags : ["test_tag_1"], |
| 80 | + token: securityParametersObj.token, |
| 81 | + signature: securityParametersObj.signature, |
| 82 | + expire: securityParametersObj.expire, |
| 83 | + //- extensions: [ |
| 84 | + //- { |
| 85 | + //- name: "aws-auto-tagging", |
| 86 | + //- minConfidence: 80, |
| 87 | + //- maxTags: 10 |
| 88 | + //- } |
| 89 | + //- ], |
| 90 | + }, function(err, result) { |
| 91 | + if (err) { |
| 92 | + statusEl.innerHTML = "Error uploading image. "+ err.message; |
| 93 | + console.log(err) |
| 94 | + } else { |
| 95 | + statusEl.innerHTML = "File Uploaded"; |
| 96 | + var sampleTransformations = [{ HEIGHT: 300, WIDTH: 400}]; |
| 97 | + srcUrl = result.url; |
| 98 | + transformedURL = imagekit.url({ |
| 99 | + src: srcUrl, |
| 100 | + transformation : sampleTransformations |
| 101 | + }); |
82 | 102 |
|
83 | | - var orig_img = document.querySelector("#orig_image > p > img"); |
84 | | - var trans_img = document.querySelector("#trans_image > p > img"); |
| 103 | + var orig_img = document.querySelector("#orig_image > p > img"); |
| 104 | + var trans_img = document.querySelector("#trans_image > p > img"); |
85 | 105 |
|
86 | | - orig_img.setAttribute("src", srcUrl); |
87 | | - trans_img.setAttribute("src", transformedURL); |
| 106 | + orig_img.setAttribute("src", srcUrl); |
| 107 | + trans_img.setAttribute("src", transformedURL); |
88 | 108 |
|
89 | | - var el = document.getElementById('images') |
90 | | - el.setAttribute("style", ""); |
| 109 | + var el = document.getElementById('images') |
| 110 | + el.setAttribute("style", ""); |
| 111 | + } |
| 112 | + }); |
| 113 | + } else { |
| 114 | + return statusEl.innerHTML = AUTH_INVALID_RESPONSE; |
91 | 115 | } |
92 | | - }); |
| 116 | + } |
| 117 | + |
| 118 | + securityParametersRequest.send(); |
93 | 119 | } |
94 | 120 | } catch(ex) { |
95 | 121 | console.log(ex); |
|
0 commit comments