#!/usr/bin/env /bin/sh file=$1 if [[ ! -f $file ]]; then echo "Invalid File: ${file}" exit 1 fi extension=$(basename "${file}" | cut -d'.' -f2) filename="$(openssl rand -hex 8).${extension}" ACCESS_KEY= SECRET_KEY= BUCKET=c.r8x.net VANITY_URL=https://c.r8x.net RESOURCE="/${BUCKET}/${filename}" DATE=$(TZ=UTC date -j "+%a, %d %b %Y %T %z") CONTENT_TYPE=$(file --mime-type -b ${file}) ACL="x-amz-acl:public-read" STRING_TO_SIGN="PUT\n\n${CONTENT_TYPE}\n${DATE}\n${ACL}\n${RESOURCE}" SIGNATURE=$(echo -en ${STRING_TO_SIGN} | openssl sha1 -hmac ${SECRET_KEY} -binary | openssl base64) HOST="eu-central-1.linodeobjects.com" notify-send -u low -t 2000 -a Flameshot Uploading... "Uploading screenshot" curl -X PUT -T "${file}" \ -H "Date: ${DATE}" \ -H "Content-Type: ${CONTENT_TYPE}" \ -H "${ACL}" \ -H "Authorization: AWS ${ACCESS_KEY}:${SIGNATURE}" \ https://${HOST}${RESOURCE} echo "${VANITY_URL}/${filename}" | tr -d '\n' | xsel -b notify-send -u low -t 2000 -a Flameshot Uploaded... "Successfully uploaded screenshot"