From 555c75202d76534cec573b41bc9250ea10a5cdf4 Mon Sep 17 00:00:00 2001
From: Athanasios Karmas <karmas@athenarc.gr>
Date: Mon, 28 Jun 2021 09:39:40 +0000
Subject: [PATCH] Add new file to upload to Swift S3 API

---
 upload_to_s3_api.sh | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 upload_to_s3_api.sh

diff --git a/upload_to_s3_api.sh b/upload_to_s3_api.sh
new file mode 100644
index 00000000..617c09b0
--- /dev/null
+++ b/upload_to_s3_api.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+# about the file
+file_to_upload=$1
+bucket=$2
+filepath="/${bucket}/${file_to_upload}"
+
+# metadata
+contentType="application/x-compressed-tar"
+dateValue=`date -R`
+signature_string="PUT\n\n${contentType}\n${dateValue}\n${filepath}"
+
+#s3 keys
+s3_access_key=$3
+s3_secret_key=$4
+
+#prepare signature hash to be sent in Authorization header
+signature_hash=`echo -en ${signature_string} | openssl sha1 -hmac ${s3_secret_key} -binary | base64`
+
+# actual curl command to do PUT operation on s3
+curl -X PUT -T "${file_to_upload}" \
+  -H "Host: object.cscs.ch:443/${bucket}" \
+  -H "Date: ${dateValue}" \
+  -H "Content-Type: ${contentType}" \
+  -H "Authorization: AWS ${s3_access_key}:${signature_hash}" \
+  https://object.cscs.ch/${bucket}/${file_to_upload}
-- 
GitLab