本文へジャンプします。

ニフティクラウド APIリファレンス

認証ヘッダーと認証方式

認証ヘッダー

RESTでリクエストを行う場合、リクエスト毎に以下の認証ヘッダーを付加する必要があります。
(アクセス権限設定によっては、認証ヘッダーを付加する必要はありません。)

GET / HTTP/1.1
Host: ncss.nifty.com
Date: Thu, 29 Sep 2011 12:00:00 GMT
Authorization: NIFTY ${AccessKeyId}:${Sigunature}
項目名 説明 必須 サンプル値
AccessKeyId コントロールパネルより取得したAccessKey  
Signature 認証文字列
※生成ロジックは後述
 
Signature(認証文字列)生成ロジック
Signature = Base64( HMAC-SHA1 ( SecretAccessKey, UTF-8-Encoding( StringToSign ) ) )
StringToSign = HTTPリクエストメソッド + \n
               HTTPリクエストヘッダー文字列(※) + \n
               URLエンコードしたパス部分 + リクエストパラメーター文字列
  • ※ リクエストヘッダー文字列生成について:
    1. リクエストヘッダーキーをUTF-8の自然順序でソートする。
    2. リクエストヘッダー値を("\n")で連結する
      • リクエストヘッダーキーが "Content-MD5"、"Content-Type"、"Date" の場合、値を連結する。
      • リクエストヘッダーキーの接頭文字が、 "x-nifty-"の場合、ヘッダーキー+":"+ヘッダー値を連結する。
例:Get Service
GET / HTTP1.1
Content-Type: application/octet-stream
Date: Tue, 29 Sep 2011 12:00:00 GMT
Host: ncss.nifty.com
User-Agent: Nifty Cloud Service Java Client
Authorization: NIFTY ${Accesskey}:${ Sigunature }
StringToSign =
GET\n
\n
application/octet-stream\n
Tue, 29 Sep 2011 12:00:00 GMT\n
/
例:Put Bucket
PUT / HTTP1.1
Content-Type: application/octet-stream
Date: Tue, 29 Sep 2011 12:00:00 GMT
Host: my-first-bucket.ncss.nifty.com
User-Agent: Nifty Cloud Service Java Client
Authorization: NIFTY ${Accesskey}:${ Sigunature }
StringToSign =
PUT\n
\n
application/octet-stream\n
Tue, 29 Sep 2011 12:00:00 GMT\n
/my-first-bucket/
例:Get Bucket
GET / HTTP1.1
Content-Type: application/octet-stream
Date: Tue, 29 Sep 2011 12:00:00 GMT
Host: my-first-bucket.ncss.nifty.com
User-Agent: Nifty Cloud Service Java Client
Authorization: NIFTY ${Accesskey}:${ Sigunature }
StringToSign =
GET\n
\n
application/octet-stream\n
Tue, 29 Sep 2011 12:00:00 GMT\n
/my-first-bucket/
例:Delete Bucket
DELETE / HTTP1.1
Content-Type: application/octet-stream
Date: Tue, 29 Sep 2011 12:00:00 GMT
Host: my-first-bucket.ncss.nifty.com
User-Agent: Nifty Cloud Service Java Client
Authorization: NIFTY ${Accesskey}:${ Sigunature }
StringToSign =
DELETE\n
\n
application/octet-stream\n
Tue, 29 Sep 2011 12:00:00 GMT\n
/my-first-bucket/
例:Put Object
PUT /sample.txt HTTP1.1
Content-MD5: 62cff0140e0931c345c25795689032ca
Content-Type: text/plain
Date: Tue, 29 Sep 2011 12:00:00 GMT
x-nifty-acl:private
x-nifty-meta-alphabet:abcdefghijklmnopqrstuvwxyz
Host: my-first-bucket.ncss.nifty.com
Content-length: 138
User-Agent: Nifty Cloud Service Java Client
Authorization: NIFTY ${Accesskey}:${ Sigunature }
StringToSign =
PUT\n
62cff0140e0931c345c25795689032ca\n
text/plain\n
Tue, 29 Sep 2011 12:00:00 GMT\n
x-nifty-acl:private\n
x-nifty-meta-alphabet:abcdefghijklmnopqrstuvwxyz\n
/my-first-bucket/sample.txt
例:Get Object
GET/sample.txt HTTP1.1
Content-Type: application/octet-stream
Date: Tue, 29 Sep 2011 12:00:00 GMT
Host: my-first-bucket.ncss.nifty.com
User-Agent: Nifty Cloud Service Java Client
Authorization: NIFTY ${Accesskey}:${ Sigunature }
StringToSign =
GET\n
\n
application/octet-stream\n
Tue, 29 Sep 2011 12:00:00 GMT\n
/my-first-bucket/sample.txt
例:Delete Object
DELETE / HTTP1.1
Content-Type: application/octet-stream
Date: Tue, 29 Sep 2011 12:00:00 GMT
Host: my-first-bucket.ncss.nifty.com
User-Agent: Nifty Cloud Service Java Client
Authorization: NIFTY ${Accesskey}:${ Sigunature }
StringToSign =
DELETE\n
\n
application/octet-stream\n
Tue, 29 Sep 2011 12:00:00 GMT\n
/my-first-bucket/sample.txt
例:Put Object acl
PUT /sample.txt?acl HTTP1.1
Content-Type: text/plain
Date: Tue, 29 Sep 2011 12:00:00 GMT
Host: my-first-bucket.ncss.nifty.com
Content-length: 961
User-Agent: Nifty Cloud Service Java Client
Authorization: NIFTY ${Accesskey}:${ Sigunature }
StringToSign =
PUT\n
\n
text/plain\n
Tue, 29 Sep 2011 12:00:00 GMT\n
/my-first-bucket/sample.txt?acl
例:Get Object acl
GET /sample.txt?acl HTTP1.1
Content-Type: application/octet-stream
Date: Tue, 29 Sep 2011 12:00:00 GMT
Host: my-first-bucket.ncss.nifty.com
User-Agent: Nifty Cloud Service Java Client
Authorization: NIFTY ${Accesskey}:${ Sigunature }
StringToSign =
GET\n
\n
application/octet-stream\n
Tue, 29 Sep 2011 12:00:00 GMT\n
/my-first-bucket/sample.txt?acl

認証方式

ニフティクラウドストレージ(旧)は、前述と同じ方法でリクエストからSignatureを生成し、認証ヘッダー指定された値と文字列比較を行います。
文字列が一致し、認証文字列が正しいと判定した場合、指定されたAPIの処理を実行します。

バーチャルホスト形式

バケットとオブジェクトを指定する場合、以下のようにリクエスト先をバーチャルホスト形式で指定します。

https://<バケット名>.ncss.nifty.com/<オブジェクト名>

リクエストサンプル
GET /sample.txt HTTP/1.1
Host: my-first-bucket.ncss.nifty.com
Date: date
Authorization: signatureValue

推奨画面サイズ 1024×768 以上