-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmigrate-minio.sh
executable file
·83 lines (82 loc) · 2.14 KB
/
migrate-minio.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/bash
# This assumes the docker containers have already been brough up
source .env
docker compose down
docker compose up -d minio
echo "Waiting for MinIO to start..."
pingcount=0
until docker exec -it crab-minio curl -s -f -o /dev/null "http://localhost:9000/minio/health/live"
do
symbol="|"
case $(($pingcount % 4)) in
0)
symbol="/"
;;
1)
symbol="-"
;;
2)
symbol="\\"
;;
3)
symbol="|"
;;
esac
secs=$(($pingcount/10))
echo -en "\rStill waiting for MinIO to start $symbol [$secs s]"
pingcount=$(($pingcount+1))
sleep 0.1
done
echo ""
echo "MinIO started!"
MC_ALIAS="local"
source .env
docker exec -it crab-minio mc alias set $MC_ALIAS "$DEFAULT_S3_ENDPOINT" "$MINIO_ROOT_USER" "$MINIO_ROOT_PASSWORD"
docker exec -it crab-minio mc admin user add $MC_ALIAS "$DEFAULT_S3_ACCESS_KEY" "$DEFAULT_S3_SECRET_KEY"
docker exec -it crab-minio mc mb $MC_ALIAS/$DEFAULT_S3_BUCKET
cat > crab-policy.json << EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"*"
]
},
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:ListBucketMultipartUploads"
],
"Resource": [
"arn:aws:s3:::$DEFAULT_S3_BUCKET"
]
},
{
"Effect": "Allow",
"Principal": {
"AWS": [
"*"
]
},
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:GetObject",
"s3:ListMultipartUploadParts",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::$DEFAULT_S3_BUCKET/*"
]
}
]
}
EOF
docker cp crab-policy.json crab-minio:/tmp/crab-policy.json
docker exec -it crab-minio mc admin policy create $MC_ALIAS crab-policy /tmp/crab-policy.json
docker exec -it crab-minio mc admin policy attach $MC_ALIAS crab-policy --user "$DEFAULT_S3_ACCESS_KEY"
rm crab-policy.json
docker exec -it crab-minio mc anonymous set download $MC_ALIAS/$DEFAULT_S3_BUCKET