KDDIクラウドプラットフォームサービス ナレッジサイト

  • HOME
  • 開発者ガイドブック(APIリファレンス)
  • オブジェクトストレージ
  • REST APIリクエスト方法

REST APIリクエスト方法

KCPSオブジェクトストレージのREST APIのリクエスト方法について、ご説明します。

準備

エンドポイントの参照方法

オブジェクトストレージお申し込み時に設定していただいた、KCPSのIntraFrontSegment上のIPアドレスとなります。

エンドポイントは、Admin Console画面から確認できます。

「Admin Console操作マニュアル」のAdmin Console機能・操作>オブジェクトストレージ機能・操作>エンドポイント表示 をご参照ください。

アクセスキーの参照方法

「Admin Console操作マニュアル」のAdmin Console機能・操作>オブジェクトストレージ機能・操作>APIキー管理>APIキー払い出し をご参照ください。

シークレットキーの参照方法

「Admin Console操作マニュアル」のAdmin Console機能・操作>オブジェクトストレージ機能・操作>APIキー管理>APIキー払い出し をご参照ください。

リクエスト仕様

${http_verb} ${resource} HTTP/1.1
Host: ${endpoint}
Date: ${datetime}
Authorization: AWS ${accesskey}:${signature}

${request_body}
Name Description Sample
http_verb GET/PUT/POST/DELETE/HEAD GET
resource バケットやオブジェクトを示すリソースと操作を示すサブリソース

/your_bucket

【注】バススタイルのみのアクセスをサポートします。バーチャルホステッドスタイルでのアクセスはサポートしませんので、ご注意ください。

endpoint リクエスト先のホスト 123.123.123.123
datetime リクエスト時点のUTC年月日時分秒 Thu, 18 Oct 2012 03:14:30 +0000
accesskey 払い出されたアクセスキー KDjf2J04fJAdjfeKaDKajfDKwdJ
signature signature v2で生成された文字列 911TCJqs55cbEH0LPxbGIPTJKsA=
request_body file内容やXMLなど 各メソッドのページを参照してください

サンプル GET Bucket ( object list )の場合

GET /your_bucket HTTP/1.1
Host: 123.123.123.123
Date: Thu, 18 Oct 2012 03:14:30 +0000
Authorization: AWS KDjf2J04fJAdjfeKaDKajfDKwdJ:911TCJqs55cbEH0LPxbGIPTJKsA=

${signature}生成方法

KCPSオブジェクトストレージではsignature v2を利用します。signature v2の生成方法は下記の通りです。

必要な変数と連結順番

Order Name Description Sample
1 http_verb GET/PUT/POST/DELETE/HEAD GET
2 content_md5 リクエストボディのmd5ハッシュ値 3b6619cffb5f96e1acfa578badae372f
3 conetnt_type リクエストボディのContent-Type text/plain
4 datetime リクエスト時点のUTC年月日時分秒 Thu, 18 Oct 2012 03:14:30 +0000
5 amz_headers x-amz-から始まるaws独自のヘッダ 各メソッドのページを参照してください
6 resource バケットやオブジェクトを示すリソースと操作を示すサブリソース

/your_bucket

【注】バススタイルのみのアクセスをサポートします。バーチャルホステッドスタイルでのアクセスはサポートしませんので、ご注意ください。

secret_key 払い出されたシークレットキー L4Jfj4Aj66JFkeeFJxjecjAKeJCe
  • http_verbとresourceの組み合わせによって、値を確保できない変数がある場合は空文字(””)を代入してください。
  • amz_headersを除いて、ヘッダ:値の形をとるものは、値を変数に代入してください。
  • amz_headersはx-amz-acl:privateのようにヘッダ名も含めて値とし変数に代入してください。
  • amz_headersが複数ある場合は、すべてをnで連結してください。

アルゴリズム

  1. 上記1~6をnで順番に連結してsign_target文字列を作成する
  2. secret_keyとsign_targetをHMAC.SHA1でMAC値を算出する
  3. MAC値をBase64エンコードする
sign_target = "${http_verb}n${content_md5}n${content_type}n{datetime}n${amz_headers}n${resource}"
mac = hmac(secret_key, sign_target, sha1)
${signature} = base64encode(mac)
2022/07/05 2022/07/05