- 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)