#!/bin/bash |
|
# This is a sample shell(bash) script code for IIJ IoT Data Storage Web API. |
# For more information please refer to the manual. |
|
readonly BASE_URL='https://s3api.iot.iij.jp' # not edit |
readonly HOST='s3api.iot.iij.jp' # not edit |
|
access_key='' # your access key |
secret_key='' # your secret key |
content_md5='' # if you upload file, you may write. |
content_type='' # not edit |
_date=$(date -u +'%a, %d %b %Y %H:%M:%S GMT') # now date |
payload='' # if you needed. We expect xml. |
content_length=${#payload} # request body length |
http_verb='GET' # or POST, PUT, DELETE, HEAD |
bucket_name='/sample' # specify your bucket |
query='' # if you needed. e.g. ?id=hoge |
canonicalized_headers='' # if you use optional headers, you may write. |
canonicalized_resource=${bucket_name}${query} |
|
string_to_sign="${http_verb} |
${content_md5} |
${content_type} |
${_date} |
${canonicalized_headers}${bucket_name}" |
|
# create signature |
signature=$(echo -en "${string_to_sign}" | openssl dgst -sha1 -binary -hmac "${secret_key}" | base64) |
|
headers=( |
"Authorization: IIJGIO ${access_key}:${signature}" |
"Content-Type: ${content_type}" |
"Content-Length: ${content_length}" |
"Content-MD5: ${content_md5}" |
"Date: ${_date}" |
"Host: ${HOST}" |
) |
str_headers="" |
for h in "${headers[@]}"; do |
str_headers+="-H \"${h}\" " |
done |
|
eval curl -v -X ${http_verb} ${str_headers} ${BASE_URL}${canonicalized_resource} |
# eval curl -i -X ${http_verb} ${str_headers} ${BASE_URL}${canonicalized_resource} -d "${payload}" |