aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/bin/linode-uploader
blob: 5cfe2d1675bff47288b654ca75ee0b4c42df41b7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/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"