-
-
Save JustinTimperio/ae695eef5fda1f1590a685a017bbb5ec to your computer and use it in GitHub Desktop.
#!/usr/bin/env sh | |
# Example: ./download_minio.sh example.url.com username password bucket-name minio/path/to/file.txt.zst /download/path/to/file.txt.zst | |
if [ -z $1 ]; then | |
echo "You have NOT specified a MINIO URL!" | |
exit 1 | |
fi | |
if [ -z $2 ]; then | |
echo "You have NOT specified a USERNAME!" | |
exit 1 | |
fi | |
if [ -z $3 ]; then | |
echo "You have NOT specified a PASSWORD!" | |
exit 1 | |
fi | |
if [ -z $4 ]; then | |
echo "You have NOT specified a BUCKET!" | |
exit 1 | |
fi | |
if [ -z $5 ]; then | |
echo "You have NOT specified a MINIO FILE PATH!" | |
exit 1 | |
fi | |
if [ -z $6 ]; then | |
echo "You have NOT specified a DOWNLOAD PATH!" | |
exit 1 | |
fi | |
# User Minio Vars | |
URL=$1 | |
USERNAME=$2 | |
PASSWORD=$3 | |
BUCKET=$4 | |
MINIO_PATH="/${BUCKET}/$5" | |
OUT_FILE=$6 | |
# Static Vars | |
DATE=$(date -R --utc) | |
CONTENT_TYPE='application/zstd' | |
SIG_STRING="GET\n\n${CONTENT_TYPE}\n${DATE}\n${MINIO_PATH}" | |
SIGNATURE=`echo -en ${SIG_STRING} | openssl sha1 -hmac ${PASSWORD} -binary | base64` | |
curl -o "${OUT_FILE}" \ | |
-H "Host: $URL" \ | |
-H "Date: ${DATE}" \ | |
-H "Content-Type: ${CONTENT_TYPE}" \ | |
-H "Authorization: AWS ${USERNAME}:${SIGNATURE}" \ | |
https://$URL${MINIO_PATH} |
Could just use this XD
https://gist.github.com/JustinTimperio/7c7115f87b775618637d67ac911e595f
I am getting an error on using this script:
./download-minio.sh 172.22.0.10:9000 <redacted> <redacted> asiatrip mygage/asiatrip/test-video.mp4 ./test.mp4
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number
I am getting an error on using this script:
./download-minio.sh 172.22.0.10:9000 <redacted> <redacted> asiatrip mygage/asiatrip/test-video.mp4 ./test.mp4 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number
Change https to http in the string 56.
for list buckets : https://stackoverflow.com/a/78060710/2294168
I got the following error:
<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>
The problem was that my implementation of echo
did not accept -en
as arguments and instead printed them. My solution was to use bash, whose echo
-implementation supports -en
. To do this, just replace sh
in the first line with bash
. If you don't want/can't use bash, the better solution would be to switch from echo
to printf
For write
https://gist.github.com/PhilipSchmid/1fd2688ace9f51ecaca2788a91fec133