Skip to content

Instantly share code, notes, and snippets.

@antonfisher
Created September 12, 2019 21:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save antonfisher/b58b4b5bfb996ff89cdca413834f993d to your computer and use it in GitHub Desktop.
Save antonfisher/b58b4b5bfb996ff89cdca413834f993d to your computer and use it in GitHub Desktop.
Simple S3 test using s3cmd client
#!/usr/bin/env bash
# setup:
# $ mkdir -p /tmp/s3 && cd /tmp/s3
# $ ~/js/nexenta/nef/test.sh 2>&1 | grep --color -E "^\+.+$|$"
set -x;
#set -e;
HOST="1.1.1.1:9000"
#HOST="1.1.1.1:9443"
ACCESS_KEY="lololol"
SECTRET_KEY="kekekek"
BUCKET="koko"
OBJECT="image.png" # this file will be created
OBJECT_BIG="archive.11mb.zip" # path to some large file
#OPTIONS="--host=${HOST} --host-bucket=${HOST} --no-ssl --signature-v2"
#OPTIONS="--host=${HOST} --host-bucket=${HOST} --ssl --no-check-certificate"
OPTIONS="--host=${HOST} --host-bucket=${HOST}"
OPTIONS="${OPTIONS} --access_key ${ACCESS_KEY} --secret_key ${SECTRET_KEY}"
OPTIONS="${OPTIONS} --check-md5 --list-md5"
# create bucket
s3cmd $OPTIONS ls
s3cmd $OPTIONS mb s3://${BUCKET}
s3cmd $OPTIONS ls
# s3cmd $OPTIONS info s3://koko # doesn't work
# upload object
s3cmd $OPTIONS ls s3://${BUCKET}
rm ${OBJECT} || true
echo "IMAGE_DATA" >${OBJECT}
s3cmd $OPTIONS put ${OBJECT} s3://${BUCKET}
s3cmd $OPTIONS ls s3://${BUCKET}
s3cmd $OPTIONS la
#s3cmd $OPTIONS info s3://${BUCKET}/${OBJECT} # doesn't work
# download object
rm ${OBJECT} || true
s3cmd $OPTIONS get s3://${BUCKET}/${OBJECT}
cat ${OBJECT}
# sync objects
rm ${OBJECT} || true
s3cmd $OPTIONS ls s3://${BUCKET}/
s3cmd $OPTIONS sync s3://${BUCKET}/ ./
ls -l
# copy object
#s3cmd $OPTIONS cp s3://${BUCKET}/${OBJECT} s3://${BUCKET}/image2.png
#s3cmd $OPTIONS ls s3://${BUCKET}/
# disk usage
s3cmd $OPTIONS du s3://${BUCKET}
# upload in single put
s3cmd $OPTIONS --progress --disable-multipart put ${OBJECT_BIG} s3://${BUCKET}
# multipart
s3cmd $OPTIONS --progress --multipart-chunk-size-mb=5 put ${OBJECT_BIG} s3://${BUCKET}
# delete object
s3cmd $OPTIONS rm s3://${BUCKET}/${OBJECT}
s3cmd $OPTIONS rm s3://${BUCKET}/${OBJECT_BIG}
s3cmd $OPTIONS ls s3://${BUCKET}
# delete bucket
s3cmd $OPTIONS rb s3://${BUCKET}
s3cmd $OPTIONS ls
echo "OK"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment