50 lines
1.4 KiB
HTML
50 lines
1.4 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<title>Small web IDE</title>
|
|
<meta charset="utf-8"/>
|
|
</head>
|
|
<body>
|
|
<h1>Small web IDE</h1>
|
|
<script src="https://unpkg.com/aws4-tiny@1.0.0/dist/aws4.js"></script>
|
|
<script>
|
|
let aki = localStorage.getItem('accessKeyId');
|
|
if (aki === null) {
|
|
aki = window.prompt("What is your Garage Access Key ID?");
|
|
localStorage.setItem('accessKeyId', aki);
|
|
}
|
|
|
|
let sak = localStorage.getItem('secretAccessKey');
|
|
if (sak === null) {
|
|
sak = window.prompt("What is you Garage Secret Access Key?");
|
|
localStorage.setItem("secretAccessKey", sak);
|
|
}
|
|
|
|
const credentials = {
|
|
accessKeyId: aki,
|
|
secretAccessKey: sak,
|
|
};
|
|
|
|
const opts = {
|
|
region: 'garage',
|
|
service: 's3',
|
|
host: 'garage.deuxfleurs.fr',
|
|
path: '/quentin.dufour.io/?list-type=2',
|
|
headers: {
|
|
'x-amz-content-sha256': 'UNSIGNED-PAYLOAD',
|
|
},
|
|
};
|
|
|
|
const req = aws4.sign(opts, credentials);
|
|
console.log(req)
|
|
async function ListObjectsV2() {
|
|
const res = await fetch('https://garage.deuxfleurs.fr/quentin.dufour.io/?list-type=2', req);
|
|
const body = await res.text()
|
|
console.log("body raw", body)
|
|
const objList = new window.DOMParser().parseFromString(body, "text/xml")
|
|
console.log("parsed body", objList)
|
|
}
|
|
ListObjectsV2()
|
|
</script>
|
|
</body>
|
|
</html>
|