#!/usr/bin/env sh set -e # This is an example on how i use this to upload and share files. # This is tested with minio. # You may need to change some things in here to fit your needs. # Change these variables S3_BUCKET="bucketname" S3_ACCESS_KEY="accesskey" S3_SECRET_KEY="secretkey" S3_ENDPOINT="s3.example.com" ENDPOINT="https://share.example.com" API_USERNAME="admin" API_PASSWORD="hunter2" # Dont touch the things below UPLOAD_FILE="$1" if test -n "$1"; then UPLOAD_FILE=$1 elif test ! -t 0; then read -r UPLOAD_FILE else >&2 echo "Provide a file" echo "Usage: $0 " exit 1 fi UPLOAD_FILENAME=$(basename "$UPLOAD_FILE") s3cmd -q -s --host "$S3_ENDPOINT" --host-bucket "$S3_ENDPOINT" --access_key "$S3_ACCESS_KEY" --secret_key "$S3_SECRET_KEY" put "$UPLOAD_FILE" s3://$S3_BUCKET/ SLUG=$(curl -s -u "$API_USERNAME:$API_PASSWORD" -X POST --header "Content-Type: application/json" \ --data "{\"key\":\"$UPLOAD_FILENAME\"}" \ "$ENDPOINT/api/share" | jq -r ".slug") MIME=$(file -i -b "$UPLOAD_FILE") if echo "$MIME" | grep "image" &> /dev/null; then printf "%s/s/%s.%s\n" "$ENDPOINT" "$SLUG" "${UPLOAD_FILENAME##*.}" else printf "%s/%s\n" "$ENDPOINT" "$SLUG" fi