Created
November 6, 2017 08:55
-
-
Save hrchu/368561e85d92f5ff1d4ca5bf8343d22f to your computer and use it in GitHub Desktop.
Script to test s3 service powered by s3cmd
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
TEST_FILE="${PWD}/test1m" | |
TEST_FILE2="${PWD}/test2m" | |
TEST_OPT=" -c .s3cfg" | |
CleanEnv() { | |
echo "------------------------- remove all objects" | |
s3cmd ${TEST_OPT} ls | awk -F'/' '{ printf "%s\n",$3 }' | xargs -i s3cmd ${TEST_OPT} ls s3://{} | awk -F' ' '{printf "%s\n",$4}' | xargs -i s3cmd ${TEST_OPT} del {} | |
echo "------------------------- remove all buckets" | |
s3cmd ${TEST_OPT} ls | awk -F'/' '{ printf "%s\n",$3 }' | xargs -i s3cmd ${TEST_OPT} rb s3://{} | |
} | |
PrepareEnvironment() { | |
echo "------------------------- prepare: test file" | |
rm -rf ${TEST_FILE} | |
dd if=/dev/zero of=${TEST_FILE} bs=1M count=1 | |
dd if=/dev/zero of=${TEST_FILE2} bs=1M count=2 | |
CleanEnv | |
} | |
TestCreateBucket() { | |
echo "------------------------- test: create default buckets" | |
for x in {1..5} | |
do | |
printf '[Create bucket: test%03d]\n' $x | |
key=`printf 'test%03d\n' $x`; | |
s3cmd ${TEST_OPT} mb "s3://$key" | |
done | |
} | |
TestListBucket() { | |
echo "------------------------- test: list buckets" | |
s3cmd ${TEST_OPT} ls | |
} | |
TestPutObject() { | |
echo "------------------------- test: put object" | |
s3cmd ${TEST_OPT} put ${TEST_FILE2} s3://test001/test1m1 | |
s3cmd ${TEST_OPT} put ${TEST_FILE2} s3://test001/foo/test1m1 | |
s3cmd ${TEST_OPT} put ${TEST_FILE2} s3://test002/test1m1 | |
s3cmd ${TEST_OPT} put ${TEST_FILE2} s3://test002/foo/test1m1 | |
s3cmd ${TEST_OPT} ls | awk -F'/' '{ printf "%s\n",$3 }' | xargs -i s3cmd ${TEST_OPT} ls s3://{} | |
} | |
TestPutSameKeyObject() { | |
echo "------------------------- test: put object with same key" | |
s3cmd ${TEST_OPT} put ${TEST_FILE} s3://test001/test1m1 | |
s3cmd ${TEST_OPT} put ${TEST_FILE} s3://test001/foo/test1m1 | |
s3cmd ${TEST_OPT} put ${TEST_FILE} s3://test002/test1m1 | |
s3cmd ${TEST_OPT} put ${TEST_FILE} s3://test002/foo/test1m1 | |
s3cmd ${TEST_OPT} ls | awk -F'/' '{ printf "%s\n",$3 }' | xargs -i s3cmd ${TEST_OPT} ls s3://{} | |
} | |
TestGetBucketAcl() { | |
echo "------------------------- test: get bucket acl" | |
s3cmd ${TEST_OPT} info s3://test001 | |
s3cmd ${TEST_OPT} info s3://test002 | |
s3cmd ${TEST_OPT} info s3://test003 | |
s3cmd ${TEST_OPT} info s3://test004 | |
} | |
TestGetObjectAcl() { | |
echo "------------------------- test: get bucket acl" | |
s3cmd ${TEST_OPT} info s3://test001/test1m1 | |
s3cmd ${TEST_OPT} info s3://test001/foo/test1m1 | |
s3cmd ${TEST_OPT} info s3://test002/test1m1 | |
s3cmd ${TEST_OPT} info s3://test002/foo/test1m1 | |
} | |
TestDeleteAllObeject() { | |
echo "------------------------- test: remove all objects" | |
s3cmd ${TEST_OPT} ls | awk -F'/' '{ printf "%s\n",$3 }' | xargs -i s3cmd ${TEST_OPT} ls -r s3://{} | awk -F' ' '{printf "%s\n",$4}' | xargs -i s3cmd ${TEST_OPT} del {} | |
} | |
TestDeleteAllBucket() { | |
echo "------------------------- test: remove all buckets" | |
s3cmd ${TEST_OPT} ls | awk -F'/' '{ printf "%s\n",$3 }' | xargs -i s3cmd ${TEST_OPT} rb s3://{} | |
} | |
CleanEnv() { | |
TestDeleteAllObeject | |
TestDeleteAllBucket | |
} | |
main() { | |
PrepareEnvironment | |
CleanEnv | |
while : | |
do | |
#clear | |
echo " M A I N - M E N U" | |
echo "1. Test all" | |
echo "2. TestCreateBucket" | |
echo "3. TestListBucket" | |
echo "4. TestGetBucketAcl" | |
echo "10. TestPutObject" | |
echo "11. TestPutObjectWithSameKey" | |
echo "20. TestGetObjectAcl" | |
echo "30. TestDeleteAllObeject" | |
echo "40. TestDeleteAllBucket" | |
echo "z. CleanEnv" | |
echo "e. Exit" | |
echo -n "Please enter option [1 - 8, z, e]: " | |
read opt | |
case $opt in | |
1) echo "************ Test all *************"; | |
TestCreateBucket | |
TestListBucket | |
TestGetBucketAcl | |
TestPutObject | |
TestGetObjectAcl | |
;; | |
2) echo "*********** TestCreateBucket"; | |
TestCreateBucket | |
;; | |
3) echo "*********** TestListBucket"; | |
TestListBucket | |
;; | |
4) echo "*********** TestGetBucketAcl" | |
TestGetBucketAcl | |
;; | |
10) echo "*********** TestPutObject"; | |
TestPutObject | |
;; | |
11) echo "*********** TestPutObjectWithSameKey"; | |
TestPutSameKeyObject | |
;; | |
20) echo "*********** TestPutObject"; | |
TestGetObjectAcl | |
;; | |
30) echo "*********** TestPutObject"; | |
TestDeleteAllObeject | |
;; | |
40) echo "*********** TestPutObject"; | |
TestDeleteAllBucket | |
;; | |
z) echo "*********** CleanEnv"; | |
CleanEnv | |
;; | |
e) echo "Bye $USER"; | |
exit 1;; | |
*) echo "$opt is an invaild option. Please select option between 1-4 only"; | |
echo "Press [enter] key to continue. . ."; | |
read enterKey;; | |
esac | |
done | |
} | |
main |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment