· 6 years ago · Sep 27, 2019, 08:00 PM
1#!/usr/bin/env bash
2
3# setup:
4# $ mkdir -p /tmp/s3 && cd /tmp/s3
5# $ ~/js/nexenta/nef/test.sh 2>&1 | grep --color -E "^\+.+$|$"
6
7set -x;
8#set -e;
9
10HOST="1.1.1.1:9000"
11#HOST="1.1.1.1:9443"
12ACCESS_KEY="lololol"
13SECTRET_KEY="kekekek"
14BUCKET="koko"
15OBJECT="image.png" # this file will be created
16OBJECT_BIG="archive.11mb.zip" # path to some large file
17
18#OPTIONS="--host=${HOST} --host-bucket=${HOST} --no-ssl --signature-v2"
19#OPTIONS="--host=${HOST} --host-bucket=${HOST} --ssl --no-check-certificate"
20OPTIONS="--host=${HOST} --host-bucket=${HOST}"
21OPTIONS="${OPTIONS} --access_key ${ACCESS_KEY} --secret_key ${SECTRET_KEY}"
22OPTIONS="${OPTIONS} --check-md5 --list-md5"
23
24
25# create bucket
26s3cmd $OPTIONS ls
27s3cmd $OPTIONS mb s3://${BUCKET}
28s3cmd $OPTIONS ls
29# s3cmd $OPTIONS info s3://koko # doesn't work
30
31# upload object
32s3cmd $OPTIONS ls s3://${BUCKET}
33rm ${OBJECT} || true
34echo "IMAGE_DATA" >${OBJECT}
35s3cmd $OPTIONS put ${OBJECT} s3://${BUCKET}
36s3cmd $OPTIONS ls s3://${BUCKET}
37s3cmd $OPTIONS la
38#s3cmd $OPTIONS info s3://${BUCKET}/${OBJECT} # doesn't work
39
40# download object
41rm ${OBJECT} || true
42s3cmd $OPTIONS get s3://${BUCKET}/${OBJECT}
43cat ${OBJECT}
44
45# sync objects
46rm ${OBJECT} || true
47s3cmd $OPTIONS ls s3://${BUCKET}/
48s3cmd $OPTIONS sync s3://${BUCKET}/ ./
49ls -l
50
51# copy object
52#s3cmd $OPTIONS cp s3://${BUCKET}/${OBJECT} s3://${BUCKET}/image2.png
53#s3cmd $OPTIONS ls s3://${BUCKET}/
54
55# disk usage
56s3cmd $OPTIONS du s3://${BUCKET}
57
58# upload in single put
59s3cmd $OPTIONS --progress --disable-multipart put ${OBJECT_BIG} s3://${BUCKET}
60
61# multipart
62s3cmd $OPTIONS --progress --multipart-chunk-size-mb=5 put ${OBJECT_BIG} s3://${BUCKET}
63
64# delete object
65s3cmd $OPTIONS rm s3://${BUCKET}/${OBJECT}
66s3cmd $OPTIONS rm s3://${BUCKET}/${OBJECT_BIG}
67s3cmd $OPTIONS ls s3://${BUCKET}
68
69# delete bucket
70s3cmd $OPTIONS rb s3://${BUCKET}
71s3cmd $OPTIONS ls
72
73echo "OK"