- 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~6をnで順番に連結してsign_target文字列を作成する
- secret_keyとsign_targetをHMAC.SHA1でMAC値を算出する
- 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)
