]>
git.proxmox.com Git - ceph.git/blob - ceph/examples/rgw/rgw_admin_curl.sh
5 echo "Usage: `basename $0` -a <access-key> -s <secret-key>" \
6 "-e <rgw-endpoint> -r <http-request>" \
7 "-p <admin-resource> -q \"<http-query-string>\""
8 echo " -a Access key of rgw user"
9 echo " -s Secret key of rgw user"
10 echo " -e RGW endpoint in <ipaddr:port> format"
11 echo " -r HTTP request type GET/PUT/DELETE"
12 echo " -p RGW admin resource e.g user, bucket etc"
13 echo " -q HTTP query string"
14 echo " -j (Optional) Print output in pretty JSON format"
16 echo " - To create rgw user"
17 echo " # `basename $0` -a ABCD1234EFGH5678IJ90" \
18 "-s klmnopqrstuvwxyz12345ABCD987654321efghij" \
19 "-e 10.0.0.1:8080 -r PUT -p user" \
20 "-q \"uid=admin&display-name=Administrator\""
21 echo " - To get rgw user info"
22 echo " # `basename $0` -a ABCD1234EFGH5678IJ90" \
23 "-s klmnopqrstuvwxyz12345ABCD987654321efghij" \
24 "-e 10.0.0.1:8080 -r GET -p user -q \"uid=admin\""
25 echo " - To list buckets"
26 echo " (List all buckets)"
27 echo " # `basename $0` -a ABCD1234EFGH5678IJ90" \
28 "-s klmnopqrstuvwxyz12345ABCD987654321efghij" \
29 "-e 10.0.0.1:8080 -r GET -p bucket"
30 echo " (For specific rgw user)"
31 echo " # `basename $0` -a ABCD1234EFGH5678IJ90" \
32 "-s klmnopqrstuvwxyz12345ABCD987654321efghij" \
33 "-e 10.0.0.1:8080 -r GET -p bucket -q \"uid=admin\""
34 echo " - To delete bucket"
35 echo " # `basename $0` -a ABCD1234EFGH5678IJ90" \
36 "-s klmnopqrstuvwxyz12345ABCD987654321efghij" \
37 "-e 10.0.0.1:8080 -r DELETE -p bucket -q \"bucket=foo\""
38 echo " - To delete rgw user"
39 echo " # `basename $0` -a ABCD1234EFGH5678IJ90" \
40 "-s klmnopqrstuvwxyz12345ABCD987654321efghij" \
41 "-e 10.0.0.1:8080 -r DELETE -p user -q \"uid=admin\""
53 while getopts "a:s:e:r:p:q:j" opt
; do
58 s
) secret_key
=${OPTARG}
60 e
) rgw_endpoint
=${OPTARG}
62 r
) http_request
=${OPTARG}
64 p
) admin_resource
=${OPTARG}
66 q
) http_query
=${OPTARG}
78 if [ -z "${access_key}" ] ||
[ -z "${secret_key}" ] || \
79 [ -z "${rgw_endpoint}" ] ||
[ -z "${http_request}" ] || \
80 [ -z "${admin_resource}" ] ||
[ -z "${http_query}" ]; then
81 if [ "${http_request}" = "GET" ] && [ "${admin_resource}" = "bucket" ] && \
82 [ -z "${http_query}" ]; then
89 resource
="/admin/${admin_resource}"
90 contentType
="application/x-compressed-tar"
93 headerToSign
="${http_request}
99 signature
=`echo -en "$headerToSign" | \
100 openssl sha1 -hmac ${secret_key} -binary | base64`
104 curl
-X ${http_request} -H "Content-Type: ${contentType}" -H "Date: ${dateTime}" \
105 -H "Authorization
: AWS
${access_key}:${signature}" -H "Host: ${rgw_endpoint}" \
106 "http
://${rgw_endpoint}${resource}?${http_query}" 2> /dev/null|jq ".
"
108 curl -X ${http_request} -H "Content-Type: ${contentType}" -H "Date: ${dateTime}" \
109 -H "Authorization: AWS ${access_key}:${signature}" -H "Host: ${rgw_endpoint}" \
110 "http://${rgw_endpoint}${resource}?${http_query}"