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