47
1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0 本冊子掲載の内容の二次配布(配布・転載・提供等)は、ご遠慮ください。

NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

1

NTT Communications

Cloudⁿ

Object Storage APIマニュアル

Ver.1.0

本冊子掲載の内容の二次配布(配布・転載・提供等)は、ご遠慮ください。

Page 2: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

2

版数 編集日 変更内容

Ver.1.0 2013/2/20 初版作成(Cloudⁿ Storageご利用ガイドから分離)

Page 3: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

3

1 Object Storage APIを利用する P4~ 1) Object Storage APIを利用する 2) Object Storage API一覧

2 Object Storage APIリファレンス P12~ 1) Object Storage API 共通情報 2) Object Storage APIバケット操作 3) Object Storage APIオブジェクト操作

目次

Page 4: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

4

本サービスでは、Object Storageへのデータの保管や取得を行うためのAPIを提供しています。

APIを使用することで、クラウドコンソールを介さずにお客様のプログラムから直接リソースを操作することが可能です。また、本APIはAmazonWebService S3互換API(2006-03-01 Version)ですが、REST APIのみになります。SOAP APIは提供しません。なお、API Serverは以下の通りです。

APIリクエストは次のような形式となっています。 以下では、日本DCで保管するObjectをダウンロードするコマンド「GET Object」の例を記載します。

上記のリクエストは、”sample”という名前のバケットに格納されている”object.jpg”というファイルのダウンロードを示しています。

[ APIリクエストの形式 ]

GET /sample/object.jpg HTTP/1.1

Date: Thu, 18 Oct 2012 03:14:30 +0000

Authorization: AWS SaMp1eAcceSkey:d9OGZcQHl7l8iVwP7IeRLRu9sNk=

“HTTPリクエストメソッド” “対象のPATH” “HTTPバージョン”

“HTTPヘッダー”

“HTTPヘッダー”

となります。

ただし、リクエストの認証が必要となるため、“認証情報”を付与する必要があります。Object Storage API は、リクエストの認証にHTTPに定められる”Authorization Header”を用います。

Authorozatoion Headerの書式は以下のとおりです。

Authorization: AWS AccessKey:Signature

“AccessKey “は「アクセス鍵」であり、”Signature”は「秘密キー」を用いて作成する署名です。 アクセス鍵、秘密キーの確認方法については、第3章の「アクセスキー、秘密鍵の確認」をご参照ください。

[ APIリクエストの作成 ]

API server : str.cloudn-service.com

1-1) Object Storage APIを利用する

1

①のリクエストを例に、Object Storage APIへのリクエストの生成方法を解説します。

Object Storage APIのリクエストは、一般的なHTTPのリクエストと同様に、

Page 5: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

Authorization Headerを作成するには、複数のステップが必要になります。説明のため、Authorization Headerの作成を示す疑似文法を次に示します(¥n は、一般的には改行と呼ばれる Unicode コードポイント U+000A です)

Authorization = “AWS” + “ ” + アクセス鍵+ ":" + Signature;

Signature = Base64( HMAC-SHA1( UTF-8-Encoding (秘密キー, 署名対象文字列 ) ) );

署名対象文字列 = リクエストメソッド + "¥n" +

Content-MD5 + "¥n" +

Content-Type + "¥n" +

Date + "¥n" +

サービス用拡張ヘッダー要素 +

正規化済みリソース要素;

正規化済みリソース要素= [ “/” + バケット名 ] +

URLエンコードしたパス部分 +サブリソース文字列

[サブリソースが与えられた場合。 サブリソースは、例えば“?acl” など];

サービス用拡張ヘッダー要素 = 後述

ここで、①で上げた”sample”内の、”object.jpg”を取得する例に照らし合わせてAuthentication Headerを作成する過程を解説します。

GET /sample/object.jpg HTTP/1.1

Date: Thu, 18 Oct 2012 03:14:30 +0000

ベースとなるHTTP Request(以下、ベースリクエストと呼ぶ)は、③で示すところになります。

まず、”署名対象文字列”を生成します。②で示したとおり、署名対象文字列は”HTTPリクエストメソッド+¥n”から始まります。③では、HTTPリクエストメソッドは、”GET”です。この時点で、③の例での証明対象文字列は、

署名対象文字列 = GET¥n

となります。

次に、②の疑似文法における、`Content-MD5 + “¥n”`および、`Content-Type + “¥n” `の扱いに移ります。Content-MD5および、Content-Typeは、ベースリクエストのヘッダーに、”Content-MD5”ならびに、”Content-Type” ヘッダーが含まれている場合と含まれていない場合で扱いが異なります。

③を例に、”Content-MD5”および”Content-Type” Headerが含まれていない場合を説明します。

5

1-1) Object Storage APIを利用する

Page 6: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

③のように”Content-MD5” Headerがベースリクエストに含まれている場合は、Content-MD5は無視され、後に続く”¥n”だけが、署名対象文字列に付け足されます。②で`Content-MD5 + “¥n”`が評価された時点の署名対象文字列は、

1. 拡張ヘーダー名(x−amz-aclなど)に、大文字が含まれている場合は、Header名を小文字に変換します。例えば、”X-Amz-Acl”というヘッダー名であった場合は、”x-amz-acl”となります。

2. 拡張ヘッダーが複数指定されていた場合は、1で小文字に統一した拡張ヘッダー名で、拡張ヘッダーをアルファベット順(昇順)に並べ替えます。例えば、”GET Object”で、指定可能な、” x-amz-server-side -encryption “, “x-amz-delete-marker”が指定されていた場合は、次のようになります。

6

署名対象文字列 = GET¥n¥n

となります。`Content-Type + “¥n”`についても、Contetn-MD5の場合と同様の扱いとなります。②のContent-MD5 + “¥n”`が評価された時点の署名対象文字列は次のようになります。

署名対象文字列 = GET¥n¥n¥n

③のHTTP Requestの例からは外れますが、Content-MD5や、Content-Type Headerがベースリクエストに含まれていた場合は、ヘッダー名に続く値を署名対象文字列に加えます。たとえば、『Content-Type: image/jpeg』という、ヘッダーがHTTP Requestに含まれていた場合は、②の`Content-Type + “¥n”`のContent-Typeに、”image/jpeg”が代入され、結果的に②の`Content-Type + “¥n”`が評価された直後の署名対象文字列は、『署名対象文字列=GET¥n¥nimage/jpeg¥n』となります。

次に②の疑似文法における「Date+”¥n”」の扱いに移ります。

Object Storage APIでは、リプレイアタック等を防ぐ目的に、リクエストに有効期間が設定されています。そのため、HTTP Requestには、Date Headerは必ず含まれなくてはなりません。②における『Date+”¥n”』は、『”Date Headerの値” + ”¥n”』となります。したがって、この時点の“署名対象文字列”は以下のようになります。

署名対象文字列 = GET¥n¥n¥nThu, 18 Oct 2012 03:14:30 +0000¥n

次に、②の疑似文法における”サービス用拡張ヘッダー要素”の説明に移ります。”サービス用拡張ヘッダー要素”を構成するヘッダーは、”x-amz-”で始まるヘッダーとなります(以下、拡張ヘッダーとします)。

③で示したベースリクエストには、拡張ヘッダーは含まれていないため、③で示したベースリクエストに対しては、何も処理を実施しません。仮に、サービス用拡張ヘッダーが含まれていた場合は、以下のルールに従います。

x-amz-server-side-encryption: AES256

x-amz-delete-marker: true

x-amz-delete-marker: true

x-amz-server-side-encryption: AES256

1-1) Object Storage APIを利用する

Page 7: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

7

6. 改行文字“¥n”(U+000A)を、5までの作業を施した各々の拡張ヘッダーに追加します。この一覧のすべてのヘッダーを1つの文字列に連結することで、 サービス用拡張ヘッダー要素とします。

3. 同名の拡張ヘッダーが指定された場合 (同じ拡張ヘッダー名が複数ある場合)は、1つの「拡張ヘッダー名:コンマ区切り値のリスト」に整形します。その際、値と値の間の空白は削除されます。例えば、2つの拡張ヘッダー「x-amz-meta-username: Alice」および「x-amz-meta-username: Bob」が1つのヘッダーに結合されると、「x-amz-meta-username:Alice,Bob」になります。

4. 拡張ヘッダーが複数行にまたがる場合は、その拡張ヘッダーに含まれる空白文字列(改行文字も含みます)を、“一つの”空白文字(white-space)に置き換えて、一行での表現に置き換えます。

5. 拡張ヘッダー名と、値の間の空白を除く形でつなぎます。” x-amz-server-side -encryption “, “x-amz-delete-marker”の例では以下のようになります。

x-amz-delete-marker:true

x-amz-server-side-encryption:AES256

x-amz-delete-marker: true

x-amz-server-side-encryption: AES256

③に示したベースリクエストの署名対象文字列は、サービス用拡張要素の処理が不要なためこの時点での変更はなく、

署名対象文字列 = GET¥n¥n¥nThu, 18 Oct 2012 03:14:30 +0000¥n

のままとなります。

②で示した疑似文法中の”正規化済みリソース要素”の処理に移ります。正規化済みリソース要素は、以下の手順で作成します。

1. 空の文字列(“”)を箱として準備します。

2. HTTP ホストヘッダー(Host Header)を使用してバケット名が指定されているリクエストについては、バケット名の前に “/” を付け、1で準備した空の文字列に加えます。例えば、『Host: sample. str.cloudn-service.com』の場合は、”/sample”となります。 パス形式のリクエスト(③の例のように、Host Headerが指定されていないもの、あるいは、Host Headerの値が、API サーバ(str.cloudn-service.com)に等しい場合)、およびバケットを処理しないリクエストの場合は何も行いません。

3. HTTP リクエスト URI のパス部分を2までの処理の完了した箱に追加します。③の例では、パス形式に該当するため、この時点の箱の中身は”/sample/object.jpg”のようになります。?versioning、?location、?acl、 などのサブリソース文字列を処理するリクエストの場合は、“疑問符”、”サブリソース名”、および”サブリソースの値” (サブリソースの値は存在する場合)を箱に追加します。サブリソースが複数ある場合、サブリソースをアルファベット順(昇順)で並べ替え、「&」で区切ります。例えば、?acl&versionId=value となります。サブリソースは、acl、location、policy、uploadId、uploads、versionId、versioning、およびversionsです。

1-1) Object Storage APIを利用する

Page 8: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

8

③で示したベースリクエストの例では、 “サブリソース文字列”は存在しないため、上記1、2、3の処理を施した“正規化済みリソース要素”は、”/sample/object.jpg”となります。

この”正規化済みリソース要素”を、証明対象文字列に加えます。

署名対象文字列 = GET¥n¥n¥nThu, 18 Oct 2012 03:14:30 +0000¥n/sample/object.jpg

(注意:□は1つの空白文字列を示します)

以上で、署名対象文字列の生成は終了です。署名対象文字列をターミナルなどの標準出力に出すると、以下のように見えます。

Authorization:□AWS□アクセス鍵:Signature ④

④で、作成したAuthorization Headerを③ベースリクエストに追加することで、①に示した、リクエストとなります。

GET /sample/object.jpg HTTP/1.1

Date: Thu, 18 Oct 2012 03:14:30 +0000

Authorization: AWS SaMp1eAcceSkey:d9OGZcQHl7l8iVwP7IeRLRu9sNk=

②に示した疑似文法に従い、”秘密キー”とUTF-8エンコードを施した署名対象文字列を入力とするHMAC-SHA1の出力(メッセージダイジェスト)を取得します。その出力をBase64でエンコードしたものを、”Signature”とします。

以上の操作で得られた、”Signature”と 「アクセス鍵」を以下のように、組み合わせてAuthorization Headerとして、生成します。

GET

Thu, 18 Oct 2012 03:14:30 +0000

/sample/object.jpg

(注意:/sample/object.jpgの後ろには、改行は含まれません。

1-1) Object Storage APIを利用する

Page 9: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

9

[リクエストと署名対象文字列の例]

“APIリクエストの作成”で解説しましたが、署名対象文字列の生成方法は以下のステップを踏みます。ここでは、参考のためリクエストと署名対象文字列の関係を例示します。

Get Object

(HTTP ホストヘッダー(Host Header)を使用してバケットが指定されている場合)

GET /object.txt HTTP1/1

Date: Thu, 18 Oct 2012 03:14:30 +0000

Host: sample.str.cloudn-service.com

User-Agent: Ruby

Accept: */*

Authorization: AWS ${アクセス鍵}:${署名}

GET¥n

¥n

¥n

Thu, 18 Oct 2012 03:14:30 +0000¥n

/sample/object.txt

PUT Bucket

(パス形式の場合)

PUT /sample2 HTTP1/1

Date: Thu, 18 Oct 2012 03:14:30 +0000

Content-Type: application/octet-stream

User-Agent: Ruby

Accept: */*

Authorization: AWS ${アクセス鍵}:${署名}

PUT¥n

¥n

application/octet-stream¥n

Thu, 18 Oct 2012 03:14:30 +0000¥n

/sample2

PUT Object

(パス形式の場合)

PUT /sample/rfc2460.txt HTTP1/1

Date: Thu, 18 Oct 2012 03:14:30 +0000

Content-MD5: 68f4c9a5670828247c1a56693f71f309

Content-Type: text/plain

Content-length: 85890

User-Agent: Ruby

Accept: */*

x-amz-acl: public-read

Authorization: AWS ${アクセス鍵}:${署名}

PUT¥n

68f4c9a5670828247c1a56693f71f309¥n

text/plain¥

Thu, 18 Oct 2012 03:14:30 +0000¥n

x-amz-acl:public-read¥n

/sample/rfc2460.txt

Get Service

(HTTP ホストヘッダー(Host Header)を使用しているが、API Serverに等しい場合)

GET / HTTP1/1

Date: Thu, 18 Oct 2012 03:14:30 +0000

Host: str.cloudn-service.com

Authorization: AWS ${アクセス鍵}:${署名}

GET¥n

¥n

¥n

Thu, 18 Oct 2012 03:14:30 +0000¥n

/

1-1) Object Storage APIを利用する

3

Page 10: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

10

Bucket コマンド オプション

GET Service

PUT Bucket

DELETE Bucket

GET Bucket

List Objects

GET Bucket ACL

GET Bucket Location

GET Bucket logging

GET Bucket Object versions

GET Bucket versioning

List Multipart Uploads

PUT Bucket ACL*

PUT Bucket versioning

HEAD Bucket

権限を持っているすべてのバケットリスト

バケット作成

バケット削除

バケット一覧取得

バケット内容オブジェクト一覧取得

アクセス制御リスト取得

バケットのロケーション(リージョン)取得

オブジェクトのバージョン取得

バケットのバージョニング情報取得

マルチパートアップロードの一覧化

バケットACL設定

バージョニング設定

本サービスにて提供しているAPIは下記となります。

1-2) Object Storage API一覧

以下のAPIは、サポート対象外となっております。 DELETE Bucket lifecycle DELETE Bucket website GET Bucket lifecycle GET Bucket notification GET Bucket requestPayment GET Bucket website PUT Bucket lifecycle PUT Bucket notification PUT Bucket requestPayment PUT Bucket website

Page 11: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

11

Object コマンド オプション

DELETE Object

PUT Object

Initiate Multipart Upload

Upload Part

Complete Multipart Upload

Abort Multipart Upload

List Parts

GET Object

GET Object ACL*

HEAD Object

PUT Object ACL*

PUT Object Copy

オブジェクト削除

オブジェクトの作成

マルチパートアップロードの初期化

マルチパートアップロード

マルチパートアップロードの完了

マルチパートアップロードの中止

マルチパートの一覧

オブジェクトのダウンロード

オブジェクトのACL情報取得

オブジェクトのメタデータ取得

ACL設定

異なるリージョンにオブジェクトのコピー

本サービスにて提供しているAPIは下記となります。

1-2) Object Storage API一覧

以下のAPIは、サポート対象外となっております。 GET Object torrent POST Object Upload Part - Copy Delete Multiple Objects

Page 12: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

12

本サービスにて提供しているAPI Server (End Point)は下記となります。

str.cloudn-service.com

以下のテーブルに、Cloundn Storage のREST API Requestにおいて用いるHeader形式を示します。

Common Request Header

ヘッダー名 説明

Authentication 袁術の認証値を指定する

Content-Length ヘッダーを除いたリクエストの長さ(Byte)。このヘッダーはXMLをアップロードするPUT requestで必要となる

Content-MD5 ヘッダーを除いたリクエストの128 bit MD5値をbase64でエンコードしたものを指定する。この値は、リクエストの完全性(送信者が送信したリクエストが送信時のものに等しいか)をチェックする目的で利用される

Date リクエスト送信時の日時を指定する

Expect 100-continueを指定した場合、Acknowledgementがかえるまで、Bodyを送信しない。Response Headerによってreject

メッセージを受取った場合、Bodyは送信しない。

Valid Values: 100-continue

Host パス計k漆器で指定する場合は、str.cloudn-service.comを指定する(または、指定しない。)バーチャルホスト形式の場合は、${バケット名}.str.cloudn-service.comを指定する

Common Response Header

ヘッダー名 説明

Content-Length レスポンスのBodyの長さ(Byte)

Default: None

Connection サーバーとの間のコネクションがopenなのかclosedなのかを返す

Valid Values : open | close

Default : None

Date レスポンス送信時の日時が返される

Default: None

ETag オブジェクトのEntity Tag. PUT Objectのオペレーションで作成された場合は、MD5の16進標記であるが、それ以外の場合はオブジェクトのmd5値の場合もあるし、そうでない場合もある。md5値でない場合は、16進数以外の文字がふくまれうこともあるし、32文字の16進数文字列に満たない場合も、それ以上の長さの場合もある。

Server Responseを送信したサーバの名前

x-amz-delete-marker デリートマーカーがついているか否か

Valid Values : true | false

Default : false

x-amz-request-id リクエストを識別するためのユニークな値。cloudn storageサービス側で生成し指定される

x-amz-version-id オブジェクトのバージョン。バーヒョニングを有効にしている場合、cloudn storageサービスによって、オブジェクトがバケットに追加される際に、ランダムに生成された文字列が指定され、レスポンスで返される

バージョニングの機能が有効になっていない場合、常に null が返される

Valid Values : null | any URL-ready, UTF-8 encoded string

Default : null

2-1) Object Storage API 共通情報

Page 13: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

13

GET Service

コマンド概要 所有しているすべてのバケット情報を取得します

Request

Request Method GET

Path,Parameters, etc Request Path に ”/” を指定。(Host Headerにbucket名つきの、Hostnameを指定しません。必ず、str.cloudn-

service.com へのリクエストとします)

Header 無し

Body 無し

Response

Response Header 無し

Response (Body) 形式 XML

XML 構成

Node名 説明 子Node (親Node)

ListAllMyBucketsResult Responseのコンテナ Owner, Buckets

(None)

Owner Bucket Ownerの情報を格納したコンテナ

ID, DisplayName

(ListAllMyBucketsResult)

ID Bucket OwnerのUser ID None

(ListAllMyBucketsResult.Owner)

DisplayName Bucket Ownerの表示名 None

(ListAllMyBucketsResult.Owner)

Buckets 1個以上のバケットの情報を格納するコンテナ

Bucket (ListAllMyBucketsResult)

Buket 1個のバケットの情報を格納するコンテナ

Name,

(ListAllMyBucketsResult.Buckets)

Name バケット名 None

(ListAllMyBucketsResult.Buckets.Bu

cket)

CreationDate バケットの作成日時 None

(ListAllMyBucketsResult.Buckets.Bu

cket)

2-2) Object Storage API バケット操作

Page 14: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

14

PUT Bucket

コマンド概要 バケットを作成します。

Request

Request Method PUT

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。(※1)

拡張ヘッダー

説明 必須

x-amz-acl Access Control を指定します。

Type : String

Valid Values:

private | public-read | public-read-write | authenticated-read |

bucket-owner-read | bucket-owner-full-control

x-amz-

grant-read

(※2)

バケット内のObjectの一覧表示を許可する

Type : String

Constraints : None

Default : None

x-amz-

grant-write

(※2)

Objectの作成、ならびにバケット内のすべてObjectに更新、削除の許可を与える

Type : String

Constraints : None

Default : None

x-amz-

grant-read-

acp (※2)

バケットのAccess Control Listの閲覧を許可する

Type : String

Constraints : None

Default : None

x-amz-

grant-write-

acp (※2)

パケットに対してAccess Control Listの設定・更新を許可する

Type : String

Constraints : None

Default : None

x-amz-

grant-full-

control

(※2)

パケットに対して、フルコントロールを設定する

Type : String

Constraints : None

Default : None

Body(任意) 形式 XML

XML構成 Node名 説明 子Node (親Node)

CreateBucketCo

nfiguration バケット設定を格納するためのコンテナ

LocationConstraint

(None)

LocationConstra

int バケットを作成するリージョンを指定します。

リージョン一覧:

None

(CreateBucketConfiguration)

Response

Response Header 特別なヘッダーは無し

Response (Body) 無し

• ※1 : パス形式でなく、Virtual-Host形式で指定する場合は、Host Headerは必須となり、Request Pathは常に、”/”になります。 • ※2 : 特殊なAttribute Value Pairでの指定になります。Attributeは、“id” , “emailAddress”であり、それぞれ、Cloudn Storage

サービスのIDならびに登録された、e-mail addressをValueとしてとります。(例:x-amz-grant-read: id= “daikuwa”

2-2) Object Storage API バケット操作

Page 15: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

15

DELETE Bucket

コマンド概要 バケットを削除します。ただし、バケットを削除する前に、すべてのオブジェクト(すべてのバージョンのオブジェクト、ならびに、”Delete マーカー“がついたものを含め)を、事前に削除しておく必要があります。

Request

Request Method DELETE

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。(※)

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。(※)

Body 無し

Response

Response Header 特別なヘッダーは無し

Response (Body) 無し

• ※ パス形式の場合は、Host Headerは必須は必須ではなく、指定する場合は、str.cloudn-service.comになります。Virtual-Host形式で指定する場合は、Host Headerは必須となり、Request Pathは常に、”/”になります。

2-2) Object Storage API バケット操作

Page 16: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

16

GET Bucket (LIST Object)

コマンド概要 バケット内のObjectの一覧を取得します。

Request

Request Method GET

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Other

Parameters

パラメータ名 説明 必須

delimiter

(※)

指定した文字列により、Responseに含まれるKeyを2分割し、前方一致でKeyに共通する部分をPrefixとして抽出する

Type : String

Default : None

marker

(※)

指定した文字列をpivotとして、keyの値がpivot以降のものを、アルファベット順に並べる

Type : String

Default : None

max-keys

(※)

Responseに含まれるKeyの数の上限値を設定する.上限を超えた場合は、Response中のIsTruncated の値がTrueで返される。

Type : String

Default : 1000

prefix

(※)

指定した文字列で始まるkeyを持つオブジェクトだけを、responseに含める。

Type : String

Default : None

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

Body 無し

Response

Response Header 無し

Response (Body) 形式 XML

XML 構成

Node名 説明 子Node (親Node)

ListBucketResult Responseのコンテナ Name, Prefix, Marker, MaxKeys,

IsTruncated, Contents

(None)

Name バケット名 None

(ListBucketResult)

Prefix リクエスト時に指定したPrefix None

(ListBucketResult)

Marker リクエスト時に指定したMarker None

(ListBucketResult)

MaxKeys リクエスト時に指定したMax-Keysの値。

指定しなかった場合は、Default値 1000

が返る。

None

(ListBucketResult)

IsTruncated 結果が切り捨てられているかどうかを、

boolean で提示。MaxKeysを超えた場合に、Trueとなる。

None

(ListBucketResult)

Contents オブジェクトのメタデータを格納するコンテナ

Key, LastModiified, StorageClass, Size,

Etag, Owner

(ListBucketResult)

• ※ 署名対象文字列には加わりません。

2-2) Object Storage API バケット操作

Page 17: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

17

Response (前ページからの続き)

Response

(Body)

XML 構成

Node名 説明 子Node (親Node)

Key オブジェクトのKey None,

(ListBucketResult.Contents)

LastModified 最終更新日時 None

(ListBucketResult.Contents)

StorageClass 常にSTANDARDを返す None

(ListBucketResult.Contents)

Size オブジェクトのサイズ(単位:Byte) None

(ListBucketResult.Contents)

ETag オブジェクトのMD5 Hash値。変更の有無を反映するだけであり、オブジェクトのメタデータではない。

None

(ListBucketResult.Contents)

Owner オブジェクトのオーナの情報を格納するコンテナ

ID, DisplayName

(ListBucketResult.Contents)

ID オブジェクトのオーナーのID None

(ListBucketResult.Contents.Owner)

DisplayName オブジェクトのオーナーのディスプレイネーム

None

(ListBucketResult.Contents.Owner)

CommonPrefixes Delimiterをリクエストに指定し、Delimiter

を基準とした前方をCommon Prefixとするが、そのCommon Prefixを格納するコンテナ

Prefix

(ListBucketResult)

Prefix Common Prefixで見つかったPrefixを格納する

None

(ListBucketResult.CommonPrefixes)

2-2) Object Storage API バケット操作

Page 18: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

18

GET Bucket ACL

コマンド概要 バケットのAccess Control Listを取得します。

Request

Request Method GET

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Sub

Resource

パラメータ名 説明 必須

acl Access List を意味するリクエストパラメーター。署名対象文字列として評価する必要がある。

YES

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

Body 無し

Response

Response Header 無し

Response (Body) 形式 XML

XML 構成 Node名 説明 子Node (親Node)

AccessControlPolicy Responseのコンテナ Owner, AccessControlList

(None)

Owner Ownerの情報を格納するコンテナ ID, DIsplayName

(AccessControlPolicy)

ID OwnerのアカウントID None

(AccessControlPolicy.Owner)

DisplayName Ownerのディスプレイネーム None

(AccessControlPolicy.Owner)

AccessControlList ACLの情報を格納するコンテナ Grant

(AccessControlPolicy)

Grant アクセス権の被譲渡者と、パーミッションを格納するコンテナ

Grantee

(AccessControlPolicy.AccessControl

List)

Grantee アクセス権の被譲渡者の情報を格納するコンテナ

ID, DisplayName

(AccessControlPolicy.AccessControl

List.Grant)

ID アクセス権の被譲渡者のID None

(AccessControlPolicy.AccessControl

List.Grant.Grantee)

Displayname アクセス権の被譲渡者のディスプレイネーム

None

AccessControlPolicy.AccessControlL

ist.Grant.Grantee)

Permission パーミッション None

(AccessControlPolicy.AccessControl

List.Grant.Grantee)

2-2) Object Storage API バケット操作

Page 19: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

19

GET Bucket Location

コマンド概要 バケットのLocationを取得します。

Request

Request Method GET

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Sub

Resource

パラメータ名 説明 必須

location? location取得を意味するリクエストパラメーター。署名対象文字列として、評価する必要がある。

YES

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

Body 無し

Response

Response Header 無し

Response (Body) 形式 XML

XML

構成

Node名 説明 子Node (親Node)

LocationConstraint Responseのコンテナ None

(None)

2-2) Object Storage API バケット操作

Page 20: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

20

GET Bucket Object Versions

コマンド概要 バケットに格納されたオブジェクトのバージョンを取得します。

Request

Request Method GET

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Sub

Resource

パラメータ名 説明 必須

versions オブジェクトのバージョンを取得するための、リクエストパラメータ。署名対象文字列として、評価する必要がある。

YES

Other

Parameters

パラメータ名 説明 必須

delimiter

(※)

指定した文字列により、Responseに含まれるKeyを2分割し、前方一致でKeyに共通する部分をPrefixとして抽出する

Type : String

Default : None

marker

(※)

指定した文字列をpivotとして、keyの値がpivot以降のものを、アルファベット順に並べる

Type : String

Default : None

max-keys

(※)

Responseに含まれるKeyの数の上限値を設定する.上限を超えた場合は、Response中のIsTruncated の値がTrueで返される。

Type : String

Default : 1000

prefix

(※)

指定した文字列で始まるkeyを持つオブジェクトだけを、responseに含める。

Type : String

Default : None

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

Body 無し

• ※ 署名対象文字列には加わりません。

Response

Response Header 無し

Response (Body) 形式 XML

XML

構成

Node名 説明 子Node (親Node)

ListVersionsResult Responseのコンテナ Name, Prefix, KeyMarker, MaxKeys,

VersionIdMarker, IsTruncated, Version

(None)

Name Bucket名 None

(ListVersionsResult)

Prefix リクエスト時に指定したPrefix None

(ListVersionsResult)

KeyMarker リクエスト時に指定したkey-marker None

(ListVersionsResult)

VersionIdMarker リクエスト時に指定したversion-id-

marker

None

(ListVersionsResult)

MaxKeys リクエスト時に指定したmax-keys None

(ListVersionsResult)

IsTruncated 結果が切り捨てられているかどうかを、

boolean で提示。MaxKeysを超えた場合に、Trueとなる。

None

(ListVersionsResult)

2-2) Object Storage API バケット操作

Page 21: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

21

Response (前ページからの続き)

Response

(Body)

XML 構成

Node名 説明 子Node (親Node)

NextKeyMarker Responseに含まれるVersionObjectの数がMaxKeysを超えた場合に返される。次回以降のrリクエストにおいて、Key-

Markerにこの値をいれることで、以降のObjectを取得出来るようにする。

None

(ListVersionsResult)

NextVersionIdMarker Responseに含まれるVersionObjectの数がMaxKeysを超えた場合に返される。次回以降のrリクエストにおいて、version-

id-markerにこの値をいれることで、以降のObjectを取得出来るようにする。

None

(ListVersionsResult)

Version ObjectのVersion情報のコンテナ Key, VersionId, IsLatest,

LastModified, StorageClass, Size,

ETag, Owner,

(ListVersionsResult)

Key Object Key None

(ListVersionsResult.Version)

VersionID ObjectのVersion ID None

(ListVersionsResult.Version)

IsLatest Objectが最新か否か None

(ListVersionsResult.Version)

LastModified 最終更新日時 None

(ListVersionsResult.Version)

StorageClass 常に”STANDARD”を返す None

(ListVersionsResult.Version)

Size Objectのサイズ(Byte) None

(ListVersionsResult.Version)

Etag ObjectのMD5値。変更の有無の確認の為にあり、メタデータではない

None

(ListVersionsResult.Version)

Owner ObjectのOwner情報のコンテナ ID, DisplayName

(ListVersionsResult.Version)

ID ObjectのOwnerのID None

(ListVersionsResult.Version.Owner)

DisyplayName ObjectのOwnerのディスプレイネーム None

(ListVersionsResult.Version.Owner)

2-2) Object Storage API バケット操作

Page 22: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

22

GET Bucket Versioning

コマンド概要 バケットの Versioning の状態を取得します。同時に、Multi-Factor Authentication

(MFA) Deleteのステータスを取得します。

Response

Response

Header

無し

Response

(Body)

形式 XML

XML 構成

Node名 説明 子Node (親Node)

VersioningConfiguratio

n

Responseのコンテナ Status, MfaDelete

(None)

Status BucketnoVersioningの状態を、”Suspended”または、”Enabled”のいずれかで返す

None

(VersioningConfiguration)

MfaDelete “MFA Delete”の状態を、”Disabled”あるいは”Enabled”で返す。未設定の場合は、Response に含まれない

None

(VersioningConfiguration)

Request

Request Method GET

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Request

Parameters

パラメータ名 説明 必須

versioning Versioning リクエストを意味するパラメーター。署名対象文字列として評価する必要がある。

YES

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

Body 無し

2-2) Object Storage API バケット操作

Page 23: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

23

List Multipart Upload

コマンド概要 Bucketに体する進行中のマルチパートアップロードの状態の一覧を取得する

Request

Request Method GET

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Sub

Resource

パラメータ名 説明 必須

uploads 進行中のバージョンを取得するための、リクエストパラメータ。署名対象文字列として、評価する。

YES

Other

Parameters

パラメータ名 説明 必須

delimiter

(※)

指定した文字列により、Responseに含まれるKeyを2分割し、前方一致でKeyに共通する部分をPrefixとして抽出する

Type : String

Default : None

key-marker

(※)

指定した文字列をpivotとして、keyの値がpivot以降のものを、アルファベット順に並べる

Type : String

Default : None

max-

uploads

(※)

Responseに含まれるupload responseの数の上限値を設定する.上限を超えた場合は、Response中のIsTruncated の値がTrueで返される。

Type : String

Default : 1000

upload-id-

marker (※)

“key-marker”と同時に利用された際に評価され、それ以外の時は無視される。

key-markerに指定されたもの且つ、指定したupload-id-markerより、アルファベット順でみて大きなものが返される

prefix

(※)

指定した文字列で始まるkeyを持つオブジェクトだけを、responseに含める。

Type : String

Default : None

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

Body 無し

• ※ 署名対象文字列には加わりません。

Response

Response Header 無し

Response (Body) 形式 XML

XML

構成

Node名 説明 子Node (親Node)

ListMultipartUploadsR

esult

Responseのコンテナ Bucket, prefix, KeyMarker,

UploadIdMarker, MaxUpload, IsTruncated,

NextKeyMarker, NextUploadIdMarker,

upload

(None)

Bucket Bucket名 None

(ListMultipartUploadsResult)

Prefix リクエスト時に指定したPrefix None

(ListMultipartUploadsResult)

KeyMarker リクエスト時に指定したkey-marker None

(ListMultipartUploadsResult)

UploadIdMarker リクエスト時に指定したupload-id-marker None

(ListMultipartUploadsResult)

MaxUploads リクエスト時に指定したmax-uploads None

(ListMultipartUploadsResult)

2-2) Object Storage API バケット操作

Page 24: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

24

Response (前ページからの続き)

Response

(Body)

XML 構成

Node名 説明 子Node (親Node)

IsTruncated 結果が切り捨てられているかどうかを、

boolean で提示。MaxUploadsを超えた場合に、Trueとなる。

None

(ListMultipartUploadsResult)

NextKeyMarker Responseに含まれるUploadの数がMaxUploadsを超えた場合に返される。次回以降のrリクエストにおいて、Key-

Markerにこの値をいれることで、以降のUploadを取得出来るようにする。

None

(ListMultipartUploadsResult)

NextUploadIdMarker Responseに含まれるUploadの数がMaxUoloadsを超えた場合に返される。次回以降のrリクエストにおいて、upload-

id-markerにこの値をいれることで、以降のUploadを取得出来るようにする。

None

(ListMultipartUploadsResult)

Delimiter リクエスト時に指定したdelimiterの値 None

(ListMultipartUploadsResult)

CommonPrefixes Delimiterをリクエストに指定し、Delimiter

を基準とした前方をCommon Prefixとするが、そのCommon Prefixを格納するコンテナ

Prefix

(ListMultipartUploadsResult)

(CommonPrefix,)Prefix CommonPrefixとして得られたprefix None

(ListMultipartUploadsResult.Common

Prefix)

Upload Upload 状況のコンテナ Key, Initiator, Owner, StorageClass,

iniated

(ListMultipartUploadsResult)

Key Object Key None

(ListVersionsResult.Version.Upload)

Initiator 当該アップロードを開始したアカウント情報を格納するコンテナ

ID, DisplayName

(ListVersionsResult.Version.Upload)

(Initiator.I)D 当該アップロードを開始したアカウントのID

None

(ListVersionsResult.Version.Upload.I

nitiator)

(Initiator.I)DisplayNam

e 当該アップロードを開始したアカウントのディスプレイネーム

None

(ListVersionsResult.Version.Upload.I

nitiator)

Owner Objectが作成された後の、そのObjectのOwner情報を格納するコンテナ

ID, DisplayName

(ListVersionsResult.Version.Upload)

(Owner.)ID Objectが作成された後の、そのObjectのOwnerのID

None

(ListVersionsResult.Version.Upload.I

nitiator)

(Owner.)DisplayName ObjectのMD5値。変更の有無の確認の為にあり、メタデータではない

None

(ListVersionsResult.Version.Upload.I

nitiator)

StorageClass 常に”STANDARD”を返す None

(ListVersionsResult.Version.Upload)

Initiated 当該Uploadが開始された日時 None

(ListVersionsResult.Version.Upload)

2-2) Object Storage API バケット操作

Page 25: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

25

PUT Bucket ACL

コマンド概要 バケットにACLを設定する。

Request

Request Method PUT

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Sub

Resource

パラメータ名 説明 必須

acl ACL設定を示すフラグ。署名対象文字列に含める必要がある。 YES

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

拡張ヘッダー(注1)

説明 必須

x-amz-acl バケットにACLを設定する。

Type : String

Valid Values: private | public-read | public-read-write | authenticated-read | ¥

bucket-owner-read | bucket-owner-full-control

Default : private

(YES)

(注2)

x-amz-

grant-read

バケット内のオブジェクトの一覧を得る権限を与える

Type : String

Default : None

Constraints : None

x-amz-

grant-write バケットにオブジェクトの作成、ならびにバケット内のオブジェクトの更新、削除の権限を付与する

Type : String

Default : None

Constraints : None

x-amz-

grant-read-

acp

バケットに設定されたACLのRead権限を与える

Type : String

Default : None

Constraints : None

x-amz-

grant-write-

acp

バケットに設定されたACLの設定のRead権限を与える

Type : String

Default : None

Constraints : None

x-amz-

grant-full-

control

バケットに対してフルコントロール権を与える

Type : String

Default : None

Constraints : None

Body XML Data(注1)

Node名 説明 子Node(親Node) 必須

AccessControlPol

icy

Request コンテナ Owner, AccessControlList

(None)

YES

Owner objectのオーナー情報を格納するコンテナ ID, DisplayName

(AccessControlPolicy)

YES

(Owner).ID objectのオーナーのID None

(AccessControlPolicy.Owner)

YES

(Owner).DisplayN

ame

objectのオーナーのディスプレイネーム None

AccessControlPolicy.Owner)

YES

2-2) Object Storage API バケット操作

Page 26: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

26

Request (前ページの続き)

Body XML Data(注1)

Node名 説明 子Node(親Node) 必須

AccessControlList ACLの情報を格納するコンテナ Grant

(AccessControlPolicy)

YES

Grant ACLの個々の要素を格納するコンテナ Grantee, Permission

(AccessControlPolicy.Access

ControlList)

YES

Grantee アクセス権の被譲渡者の情報を格納するコンテナ

nodeのアトリビュートとして、

xmlns:xsi="http://www.w3.org/2001/XMLSchema-

instance”

の記載が必要。また、アクセス権の被譲渡者の指定方法に応じて、アトリビュートに、

xsi:type="CanonicalUser”

xsi:type="AmazonCustomerByEmail"

xsi:type="Group"

のいずれかの指定が必要。

ID, DisplayName,

EmailAddress, URI

(AccessControlPolicy.Access

ControlList.Grant)

YES

(Grantee).ID Granteeのアトリビュートに、xsi:type=“CanonicalUser”を宣言した場合に指定する。アクセス権の被譲渡者のアカウントID

None

(AccessControlPolicy.Access

ControlList.Grant.Grantee)

(YES)

(Grantee).DisplayN

ame

Granteeのアトリビュートに、xsi:type=“CanonicalUser”を宣言した場合に指定する。アクセス権の被譲渡者のディスプレイネーム

None

(AccessControlPolicy.Access

ControlList.Grant.Grantee)

(Grantee).

EmailAddress

Granteeのアトリビュートに、xsi:type=“AmazonCustomerByEmail” を宣言した場合に指定する。アクセス権の被譲渡者の登録されているe-mail address

None

(AccessControlPolicy.Access

ControlList.Grant.Grantee)

(YES)

(Grantee).URI Granteeのアトリビュートに、xsi:type=“Group”を宣言した場合に指定する。

None

(AccessControlPolicy.Access

ControlList.Grant.Grantee)

(YES)

Permission 権限の種類を指定する。

Valid Values: FULL_CONTROL | WRITE | ¥

WRITE_ACP | READ |

READ_ACP

None

(AccessControlPolicy.Access

ControlList.Grant)

YES

• (注1) HeaderによるACLの設定と、Bodyによるリクエストは併用不可。つまり、HeaderによりACL設定のリクエストを行う場合は、bodyの指定は不要であり、Bodyによるリクエストを行う場合はHeaderによる指定は不要である。

• (注2)Headerによるリクエストの場合は必須である

Response

Response Header x-amz-version-

id

オブジェクトが一意なVersion IDを持っていた場合は、Version IDが返される

Type : String

Default : None

Response (Body) 無し

2-2) Object Storage API バケット操作

Page 27: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

27

PUT Bucket Versioning

コマンド概要 バケットにVersioningを設定する。

Request

Request Method PUT

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Sub

Resource

パラメータ名 説明 必須

versioning Versioning 設定を示すフラグ。署名対象文字列に含める必要がある。 YES

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

拡張ヘッダー(注1)

説明 必須

x-amz-mfa “認証機器のシリアル番号” + “ “(white space) + “機器に表示された値”を指定する (YES)

Body XML Data

Node名 説明 子Node(親Node) 必須

VersioningConfig

uration

Request コンテナ Status, MfaDelete

(None)

YES

Status バケットにVersioningの設定を指定する

Valid Values : Suspended | Enabled

* Enable : Versioning を有効にする

* Suspended: Versioning を無効にする。無効の場合の

Version の 値はnulll

None

(VersioningConfiguration)

MfaDelete “MFA Delete”の機能を有効・無効を設定数する。有効にする場合は、x-amz-mfaのheaderを指定する必要がある

Valid Values: Disabled | Enabled

None

(VersioningConfiguration)

Response

Response Header 無し

Response (Body) 無し

2-2) Object Storage API バケット操作

Page 28: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

28

HEAD Bucket

コマンド概要 バケットの存在と、それに対するアクセス権の有無を確認するのに有益なコマンド。バケットが存在し、且つ、アクセス権がある場合は、”200 OK”を返し、それ以外の場合は、”403 Forbidden”を返す。

Response

Response Header 無し

Response (Body) 無し

Request

Request Method HEAD

Path,Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Header 無し

Body 無し

2-2) Object Storage API バケット操作

Page 29: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

29

DELTE Object

コマンド概要 バケット内の指定されたオブジェクトを削除する。

Response

Response Header x-amz-delete-

marker

Version管理されたObjectが一時的に削除されたものなのか否かのフラグ

x-amz-version-

id

versionIdが指定された場合に、指定されたversionでこのヘッダーに記載されたversionのオブジェクトが削除されたことを示す

Response (Body) 無し

Request

Request Method DLETE

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Sub

Resource

パラメータ名 説明 必須

versionId バージョンを指定して、オブジェクトを削除する場合に含めるリクエストパラメーター。署名対象文字列として評価する必要がある。

Type : String

Default : None

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

Body 無し

2-3) Object Storage API オブジェクト操作

Page 30: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

30

PUT Object

コマンド概要 バケット内にオブジェクトを作成する。

Request

Request Method PUT

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

ヘッダー名 説明 必須

Cache-

Control

一連のRequest/Replyのやり取りの、キャッシュに対する振る舞いを指定する。

Type : String

Default : None

Constraints: None

Content-

Disposition

対象のオブジェクトに対して表象的な説明を付与する。

Type : String

Default : None

Constraints: None

Content-

Encoding

対象のオブジェクトに対してエンコーディングを指定する。同時に、Content-Typeを参照することで得られるMedia Typeにたいして、どのデコードメカニズムを適用しなければ行けないかを指定する。

Type : String

Default : None

Constraints: None

Content-

Length

オブジェクトのサイズをByte単位で指定する

Type : String

Default : None

Constraints: None

YES

Content-

MD5

ヘッダーを除いた128bitのMD5 Hash値をBase64 Encodingしたもを指定する。これは、コンテンツの完全性を確認するために利用される

Type : String

Default : None

Constraints: None

Content-

Type

コンテンツのフォーマットをMIME Typeで指定します。

Type : String

Default : binary/octet-stream

Valid Values: MIME types

Constraints : None

Expect このヘッダーに” 100-continue”をした場合、クライアント(API を利用したソフトウェア)は、ACKを受取るまでBodyを送信しません。また、NACKを受取った場合はBodyを送信しません

Type : String

Default : binary/octet-stream

Valid Values: MIME types

Constraints : None

Expires リクエストの有効期限をms( milliseconds)で指定する

Type : Int

Default : None

Constraints: None

拡張ヘッダー

説明 必須

x-amz-

meta-* オブジェクトにユーザ定義のメタデータを指定する。また、オブジェクトをダウンロードする際に同時に返される。PUT Headerは全体で8KBに制限されるため、ユーザ定義のメタデータヘッダーは2KBに制限される。各メタデータヘッダーは、Key-Value Pairの形式をとり、且つ、UTF-8でエンコードされた後、合計で2KBとする。

Type : String

Default : None

Constraints: None

2-3) Object Storage API オブジェクト操作

Page 31: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

31

Response

Response Header x-amz-server-

side-encryption

Request時にserver-side encryptionを指定した場合に、確認のため当該ヘッダーが付与される

x-amz-version-

id

オブジェクトのVersion ID

Response (Body) 無し

Request (前ページからの続き)

Header 拡張ヘッダー 説明 必須

x-amz-server-

side-

ecncryptiion

オブジェクトが作成される際、サーバー側で暗号化する場合のアルゴリズムを指定する。

Type : String

Valid Value: AES256

x-amz-storage-

class

x-amz-acl オブジェクトに対して、ACLを設定する。

Type : String

Default : private

Valid Values: private | public-read | public-read-write | authenticated-read | ¥

bucket-owner-read | bucket-owner-full-control

Constraints: None

x-amz-grant-

read

(※1, ※2)

アクセス権の被譲渡者に、オブジェクトならびにそれに付随するメターデータのRead権限を設定する

Type : String

Default : None

Constraints: None

x-amz-grant-

read-acp

(※1)

アクセス権の被譲渡者に、オブジェクトのACLについてのRead権限を設定する

Type : String

Default : None

Constraints: None

x-amz-grant-

write-acp

(※1)

アクセス権の被譲渡者に、オブジェクトのACLについてのWrite権限を設定する

Type : String

Default : None

Constraints: None

x-amz-grant-

ffull-controll

(※1)

アクセス権の被譲渡者に、オブジェクトに対して、READ, READ_ACP, WRITE_ACPの権限を付与する

Type : String

Default : None

Constraints: None

Body アップロードデータ

• ※1 : 特殊なAttribute Value Pairでの指定になります。Attributeは、“id” , “emailAddress”であり、それぞれ、Cloudn StorageサービスのIDならびに登録された、e-mail addressをValueとしてとります。(例:x-amz-grant-read: id= “daikuwa”

• ※2. x-amz-grant-writeは、bucketに適用されるため、Objectには指定出来ません。

2-3) Object Storage API オブジェクト操作

Page 32: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

32

Initiate Multipart Upload

コマンド概要 マルチパートアップロードを開始し、uploadIdを取得する。

Request

Request Method POST

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

ヘッダー名 説明 必須

Cache-

Control

一連のRequest/Replyのやり取りの、キャッシュに対する振る舞いを指定する。

Type : String

Default : None

Constraints: None

Content-

Disposition

対象のオブジェクトに対して表象的な説明を付与する。

Type : String

Default : None

Constraints: None

Content-

Encoding

対象のオブジェクトに対してエンコーディングを指定する。同時に、Content-Typeを参照することで得られるMedia Typeにたいして、どのデコードメカニズムを適用しなければ行けないかを指定する。

Type : String

Default : None

Constraints: None

Content-

Length

オブジェクトのサイズをByte単位で指定する

Type : String

Default : None

Constraints: None

YES

Content-

MD5

ヘッダーを除いた128bitのMD5 Hash値をBase64 Encodingしたもを指定する。これは、コンテンツの完全性を確認するために利用される

Type : String

Default : None

Constraints: None

Content-

Type

コンテンツのフォーマットをMIME Typeで指定します。

Type : String

Default : binary/octet-stream

Valid Values: MIME types

Constraints : None

Expect このヘッダーに” 100-continue”をした場合、クライアント(API を利用したソフトウェア)は、ACKを受取るまでBodyを送信しません。また、NACKを受取った場合はBodyを送信しません

Type : String

Default : binary/octet-stream

Valid Values: MIME types

Constraints : None

Expires リクエストの有効期限をms( milliseconds)で指定する

Type : Int

Default : None

Constraints: None

拡張ヘッダー

説明 必須

x-amz-

meta-* オブジェクトにユーザ定義のメタデータを指定する。また、オブジェクトをダウンロードする際に同時に返される。PUT Headerは全体で8KBに制限されるため、ユーザ定義のメタデータヘッダーは2KBに制限される。各メタデータヘッダーは、Key-Value Pairの形式をとり、且つ、UTF-8でエンコードされた後、合計で2KBとする。

Type : String

Default : None

Constraints: None

2-3) Object Storage API オブジェクト操作

Page 33: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

33

Request (前ページからの続き)

Header 拡張ヘッダー 説明 必須

x-amz-server-

side-

ecncryptiion

オブジェクトが作成される際、サーバー側で暗号化する場合のアルゴリズムを指定する。

Type : String

Valid Value: AES256

x-amz-

storage-class

multipart uploadが成功した後のオブジェクトのストレージクラスを指定します。

Type : String

Valid Values: STANDARD | REDUCED_REDUNDANCY

Default : STANDARD

x-amz-acl オブジェクトに対して、ACLを設定する。

Type : String

Default : private

Valid Values: private | public-read | public-read-write | authenticated-read | ¥

bucket-owner-read | bucket-owner-full-control

Constraints: None

x-amz-grant-

read(※1,※2)

アクセス権の被譲渡者に、オブジェクトならびにそれに付随するメターデータのRead権限を設定する

Type : String

Default : None

Constraints: None

x-amz-grant-

read-acp

(※1)

アクセス権の被譲渡者に、オブジェクトのACLについてのRead権限を設定する

Type : String

Default : None

Constraints: None

x-amz-grant-

write-acp

(※1)

アクセス権の被譲渡者に、オブジェクトのACLについてのWrite権限を設定する

Type : String

Default : None

Constraints: None

x-amz-grant-

ffull-controll

(※1)

アクセス権の被譲渡者に、オブジェクトに対して、READ, READ_ACP, WRITE_ACPの権限を付与する

Type : String

Default : None

Constraints: None

Body 無し

• ※1 : 特殊なAttribute Value Pairでの指定になります。Attributeは、“id” , “emailAddress”であり、それぞれ、Cloudn StorageサービスのIDならびに登録された、e-mail addressをValueとしてとります。(例:x-amz-grant-read: id= “daikuwa”

• ※2. x-amz-grant-writeは、bucketに適用されるため、Objectには指定出来ません。

Response

Response

Header

x-amz-server-

side-encryption

Request時にserver-side encryptionを指定した場合に、確認のため当該ヘッダーが付与される

Response

(Body)

形式 XML

XML 構成

Node名 説明 子Node (親Node)

InitiateMultipartUpload

Result

Responseのコンテナ Bucket, Key, UploadId

(None)

Bucket バケット名 None

(InitiateMultipartUploadResult)

Key Object Key None

(InitiateMultipartUploadResult)

UploadId Multipart uploadを識別するID None

(InitiateMultipartUploadResult)

2-3) Object Storage API オブジェクト操作

Page 34: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

34

Upload Part

コマンド概要 Multipart Uploadにおいて、一つのパーツをuploadする。

(事前にInitiate Multipart Uploadを用いて、uploadIdを取得しておく必要がある)

Request

Request Method PUT

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Sub

Resource

パラメータ名 説明 必須

partNumbe

r

パートの順番を指定する。(1から始まる整数)。署名対象文字列として評価する必要がある。

YES

uploadId Initiate Multipart Uploadの結果得られたUploadIdを指定する。署名対象文字列として評価する必要がある。

YES

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

ヘッダー名 説明 必須

Content-

Length

オブジェクトのサイズをByte単位で指定する

Type : String

Default : None

Constraints: None

YES

Content-

MD5

ヘッダーを除いた128bitのMD5 Hash値をBase64 Encodingしたもを指定する。これは、コンテンツの完全性を確認するために利用される

Type : String

Default : None

Constraints: None

Expect このヘッダーに” 100-continue”をした場合、クライアント(API を利用したソフトウェア)は、ACKを受取るまでBodyを送信しません。また、NACKを受取った場合はBodyを送信しません

Type : String

Default : binary/octet-stream

Valid Values: MIME types

Constraints : None

Body アップロードデータ

Response

Response Header ETag (※) オブジェクトのMD5 Hash値。変更の有無を反映するだけであり、オブジェクトのメタデータではない。

x-amz-server-

side-encryption

Initiate Multipart Upload実行時に、server-side encryptionを指定した場合に、確認のため当該ヘッダーが付与される

Response (Body) 無し

• ※ Common Response Headerではあるが、”Complete Multipart Upload “を実行する際に必要となるため明記した

2-3) Object Storage API オブジェクト操作

Page 35: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

35

Complete Multipart Upload

コマンド概要 Upload Partにてuploadしたオブジェクトの断片を結合して、一つのオブジェクトとし、Multipart Uploadを完了する

Request

Request Method POST

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Sub

Resource

パラメータ名 説明 必須

uploadId Initiate Multipart Uploadの結果得られたUploadIdを指定する。署名対象文字列として評価する必要がある。

YES

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

Body XML Data

Node名 説明 子Node(親Node) 必須

CompleteMultipartUploa

d

Request コンテナ Part,

(None)

YES

Part Upload Partでアップロードしたパートの情報を格納するコンテナ

PartNumber, ETag

(CompleteMultipartUpload)

YES

PartNumber Upload Partで指定した各々のpartNumber None

(CompleteMultipartUpload.

Part)

YES

ETag Upload Partの結果、Response Headerより取得したmd5値

None

(CompleteMultipartUpload.

Part)

YES

Response

Response

Header

x-amz-server-

side-encryption

Request時にserver-side encryptionを指定した場合に、確認のため当該ヘッダーが付与される

x-amz-version-id BucketにVersioning が指定されていた場合は、新しく作成されたオブジェクトのVersion IDが返される

Response

(Body)

形式 XML

XML 構成

Node名 説明 子Node (親Node)

CompleteMultipartUplo

adResult

Responseのコンテナ Bucket, Key, UploadId

(None)

Location 新しく作成されたオブジェクトのURL None

(CompleteMultipartUploadResult)

Bucket バケット名 None

(CompleteMultipartUploadResult)

Key 新しく作成されたObject Key None

(CompleteMultipartUploadResult)

ETag 新しく作成された、オブジェクトのEntity

Tag.

オブジェクトのmd5値の場合もあるし、そうでない場合もある。md5値でない場合は、16進数以外の文字がふくまれうこともあるし、32文字の16進数文字列に満たない場合も、それ以上の長さの場合もある。

None

(CompleteMultipartUploadResult)

2-3) Object Storage API オブジェクト操作

Page 36: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

36

Abort Multipart Upload

コマンド概要 Multipart Uploadを中止する

Request

Request Method DELETE

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Sub

Resource

パラメータ名 説明 必須

uploadId Initiate Multipart Uploadの結果得られたUploadIdを指定する。署名対象文字列として評価する必要がある。

YES

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

Body 無し

Response

Response Header 特になし

Response (Body) 無し

2-3) Object Storage API オブジェクト操作

Page 37: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

37

List Part

コマンド概要 Multipart Uploadにおいて、アップロード済みのパーツ情報の一覧を取得する

Request

Request Method GET

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Sub

Resource

パラメータ名 説明 必須

uploadId Initiate Multipart Uploadの結果得られたUploadIdを指定する。署名対象文字列として評価する必要がある。

YES

Other

Parameters

パラメータ名 説明 必須

max-parts Responseのbodyに含まれるPartsの数の上限を設定する

Type : String

Default: 1,000

part-

number-

marker

このパラメータで指定した値より大きなPart Numberのみをresponseに含めるようにする

Type : String

Default: None

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

Body 無し

Response

Response

Header

特に無し

Response

(Body)

形式 XML

XML 構成 Node名 説明 子Node (親Node)

ListPartsResult Responseのコンテナ Bucket, Key, UploadId, Initiator, Owner,

StorageClass, PartNumberMarker,

NextPartNumberMarker, MaxParts,

IsTruncated, Part

(None)

Bucket バケット名 None

(ListPartsResult)

Key 新しく作成されるObject Key None

(ListPartsResult)

UploadId Multipart Uploadを特定するためのID None

(ListPartsResult)

Initiator 当該Mutlipart Uploadを開始したアカウントの情報を格納するコンテナ

ID, DIsplayName

(ListPartsResult)

(initiator).ID 当該Mutlipart Uploadを開始したアカウントID None

(ListPartsResult.Initiator)

(initiator).DisplayName 当該Mutlipart Uploadを開始したアカウントのディスプレイネーム

None

(ListPartsResult.Initiator)

Owner 当該Mulitipart Uploadの結果作成されるオブジェクトのOwnerの情報を格納するコンテナ

ID, DIsplayName

(ListPartsResult)

(Owner.)ID 当該Mulitipart Uploadの結果作成されるオブジェクトのOwnerのアカウントID

None

(ListPartsResult.Owner)

(Owner).DisplayName 当該Mulitipart Uploadの結果作成されるオブジェクトのOwnerのディスプレイネーム

None

(ListPartsResult.Owner)

2-3) Object Storage API オブジェクト操作

Page 38: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

38

Response (前ページの続き)

Response

(Body)

XML 構成

Node名 説明 子Node (親Node)

StorageClass Uploadしたオブジェクトが格納されるストレージのクラス名

None

(ListPartsResult)

PartNumberMarker このnodeに格納された数値より大きなPart Numberを持つpartが返されていることを示す

None

(ListPartsResult)

MaxParts レスポンスに含まれるPartの最大数 None

(ListPartsResult)

IsTruncated Responseに含まれるPartの数がMaxPartsの値を超えた場合に”True”がセットされ返される

None

(ListPartsResult)

NextPartNumberMark

er

Responseに含まれるPartの数がMaxPartsの値を超えた場合に、以降のリクエスト時に指定するpart-number-

markerの値を提示する

None

(ListPartsResult)

Part Upload済みのオブジェクトの断片情報を格納するコンテナ

ParftNumber, LastModified, ETag ,

Size

(ListPartsResult)

PartNiumber オブジェクトの断片のシーケンシャルな番号

None

(ListPartsResult.Part)

LastModiied オブジェクトの断片の最終更新に知事 None

(ListPartsResult.Part)

ETag アップロードしたオブジェクトの断片のEntity Tagの値

None

(ListPartsResult.Part)

Size アップロードしたオブジェクトの断片のサイズ(Byte)

None

(ListPartsResult.Part)

2-3) Object Storage API オブジェクト操作

Page 39: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

39

GET Object

コマンド概要 オブジェクトをCloudn Strageよりダウンロードする。 Anonymousに対して、読み取り権限を設定している場合、Authorized Headerは省略可能。

Request

Request Method GET

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Sub

Resource

パラメータ名 説明 必須

versionId 特定のVersionのオブエジェクとを取得する場合は指定する。署名対象文字列として評価する必要がある。

Other

Parameters

パラメータ名 説明 必須

response-

content-

type

ResponseのContent-Type headerの値を上書きしたい場合に指定する。署名対象文字列として評価する必要がある。

Type : String

Default: None

response-

content-

language

ResponseにContent-Language header を指定する。署名対象文字列として評価する必要がある。

Type : String

Default: None

response-

expires

ResponseにExpire header を指定する。署名対象文字列として評価する必要がある。

Type : String

Default: None

response-

cache-

control

ResponseにCache-Control header を指定する。署名対象文字列として評価する必要がある。

Type : String

Default: None

response-

content-

disposition

ResponseにContent-Disposition Headerを指定する。署名対象文字列として評価する必要がある。

Type : String

Default: None

response-

content-

encoding

ResponseにContent-Encoding を指定する。署名対象文字列として評価する必要がある。

Type : String

Default: None

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

ヘッダー名 説明 必須

Range オブジェクトの指定したByte Rangeをダウンロードする。

Type : String

Default : None

If-Modified-

Since

指定した日付以降に更新されていた場合にbjectを返す

Type : String

Default : None

If-

Unmodified

-Since

指定した日付以降に更新されていなかった場合にObjectを返す

Type : String

Default : None

If-Match ETag(Entity Tag)を指定し、それが一致し場合にObjectを返す

Type : String

Default : None

If-None-

Match

ETag(Entity Tag)を指定し、それが一致しなかった場合にObjectを返す

Type : String

Default : None

Body 無し

2-3) Object Storage API オブジェクト操作

Page 40: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

40

Response

Response

Header

x-amz-delete-

marker

ダウンロードしたオブジェクトにDelete Markerがついているかいないかを示す

Type : Boolean

Valid Values: true | false

Default : false

x-amz-server-

side-encryption

オブジェクトがServer-Side encryptionの機能を用いて保存されていた場合、このHeaderに暗号化アルゴリズムが示される。

Type : String

Valid Values: AES256

x-amz-version-id オブジェクトが一意なVersion IDを持っていた場合は、Version IDが返される

Type : String

Default : None

Response

(Body)

オブジェクトデータ

2-3) Object Storage API オブジェクト操作

Page 41: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

41

GET Object ACL

コマンド概要 オブジェクトのAccess Control Listを取得します。

Request

Request Method GET

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Sub

Resource

パラメータ名 説明 必須

acl objectに設定されたACL要求するフラグ。署名対象文字列として評価する必要がある。

YES

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

Body 無し

Response

Response

Header

特に無し

Response

(Body)

形式 XML

XML 構成

Node名 説明 子Node (親Node)

AccessControlPolicy Responseのコンテナ Owner, AccessControlList

(None)

Owner ObjectのOwner 情報を格納するコンテナ ID, DisplayName

(AccessControlPolicy)

(Owner).ID ObjectのOwerのアカウントID None

(AccessControlPolicy.Owner)

(Owner).DisplayName ObjectのOwnerのディスプレイネーム None

(AccessControlPolicyOwner)

AccessControlList ACLに関する情報を格納するコンテナ Grant

(AccessControlPolicy)

Grant 許可属性を格納したコンテナ Grantee, Permission

(AccessControlPolicy.

AccessControlList)

Grantee アクセス権の被譲渡者に関する情報を格納するコンテナ

ID, DisplayName

(AccessControlPolicy.

AccessControlList.Grant)

(Grantee).ID アクセス権の被譲渡者のID None

(AccessControlPolicy.

AccessControlList.Grant.Grantee)

(Grantee).DisplayNam

e アクセス権の被譲渡者のディスプレイネーム

None

(AccessControlPolicy.

AccessControlList.Grant.Grantee)

Permission オブジェクトに対するパーミッション

(FULL_CONTROL, WRITE,

READ_ACP)

None

(ListPartsResult.Owner)

2-3) Object Storage API オブジェクト操作

Page 42: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

42

HEAD Object

コマンド概要 オブジェクトのメタ情報のみを取得する

Request

Request Method HEAD

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Sub

Resource

パラメータ名 説明 必須

versionId 特定のVersionのオブエジェクとを取得する場合は指定する。署名対象文字列として評価する必要がある。

Other

Parameters

パラメータ名 説明 必須

response-

content-type

ResponseのContent-Type headerの値を上書きしたい場合に指定する。署名対象文字列として評価する必要がある。

Type : String

Default: None

response-

content-

language

ResponseにContent-Language header を指定する。署名対象文字列として評価する必要がある。

Type : String

Default: None

response-

expires

ResponseにExpire header を指定する。署名対象文字列として評価する必要がある。

Type : String

Default: None

response-

cache-control

ResponseにCache-Control header を指定する。署名対象文字列として評価する必要がある。

Type : String

Default: None

response-

content-

disposition

ResponseにContent-Disposition Headerを指定する。署名対象文字列として評価する必要がある。

Type : String

Default: None

response-

content-

encoding

ResponseにContent-Encoding を指定する。署名対象文字列として評価する必要がある。

Type : String

Default: None

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

ヘッダー名 説明 必須

Range オブジェクトの指定したByte Rangeをダウンロードする。

Type : String

Default : None

If-Modified-

Since

指定した日付以降に更新されていた場合に、Objectのメタ情報を返す

Type : String

Default : None

If-

Unmodified

-Since

指定した日付以降に更新されていなかった場合にObjectのメタ情報を返す

Type : String

Default : None

If-Match ETag(Entity Tag)を指定し、それが一致し場合にObjectのメタ情報を返す

Type : String

Default : None

If-None-

Match

ETag(Entity Tag)を指定し、それが一致しなかった場合にObjectのメタ情報を返す

Type : String

Default : None

Body 無し

2-3) Object Storage API オブジェクト操作

Page 43: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

43

Response

Response

Header

x-amz-meta-* オブジェクトを作成する際にメタ情報を指定した場合に、指定したメタ情報が返される。

x-amz-missing-

meta

x-amz-meta-* headerで返せなかったメタ情報ヘッダーの数が返される

x-amz-server-

side-encryption

オブジェクトがServer-Side encryptionの機能を用いて保存されていた場合、このHeaderに暗号化アルゴリズムが示される。

Type : String

Valid Values: AES256

x-amz-version-id オブジェクトが一意なVersion IDを持っていた場合は、Version IDが返される

Type : String

Default : None

Response

(Body)

無し

2-3) Object Storage API オブジェクト操作

Page 44: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

44

PUT Object ACL

コマンド概要 オブジェクトにACLを設定する

Request

Request Method PUT

Path, Parameters, etc パス形式の場合は、Request Pathにバケット名を指定します。

Sub

Resource

パラメータ名 説明 必須

acl ACL設定を示すフラグ。署名対象文字列に含める必要がある。 YES

versionId 特定のバージョンのオブジェクトを指定する場合に指定する。署名対象文字列に含める必要がある

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

拡張ヘッダー(注1)

説明 必須

x-amz-acl オブジェクトにACLを設定する。

Type : String

Valid Values: private | public-read | public-read-write | authenticated-read | ¥

bucket-owner-read | bucket-owner-full-control

Default : private

(YES)

(注2)

x-amz-

grant-read

オブジェクトの一覧に表示させる

Type : String

Default : None

Constraints : None

x-amz-

grant-write

利用不可

x-amz-

grant-read-

acp

オブジェクトに設定されたACLのRead権限を与える

Type : String

Default : None

Constraints : None

x-amz-

grant-write-

acp

オブジェクトに設定されたACLの設定のRead権限を与える

Type : String

Default : None

Constraints : None

x-amz-

grant-full-

control

オブジェクトに対してフルコントロール権を与える

Type : String

Default : None

Constraints : None

Body XML Data(注1)

Node名 説明 子Node(親Node) 必須

AccessControlPol

icy

Request コンテナ Owner, AccessControlList

(None)

YES

Owner objectのオーナー情報を格納するコンテナ ID, DisplayName

(AccessControlPolicy)

YES

(Owner).ID objectのオーナーのID None

(AccessControlPolicy.Owner)

YES

(Owner).DisplayN

ame

objectのオーナーのディスプレイネーム None

AccessControlPolicy.Owner)

YES

2-3) Object Storage API オブジェクト操作

Page 45: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

45

Request (前ページの続き)

Body XML Data(注1)

Node名 説明 子Node(親Node) 必須

AccessControlList ACLの情報を格納するコンテナ Grant

(AccessControlPolicy)

YES

Grant ACLの個々の要素を格納するコンテナ Grantee, Permission

(AccessControlPolicy.Acc

essControlList)

YES

Grantee アクセス権の被譲渡者の情報を格納するコンテナ

nodeのアトリビュートとして、

xmlns:xsi="http://www.w3.org/2001/XMLSchema-

instance”

の記載が必要。また、アクセス権の被譲渡者の指定方法に応じて、アトリビュートに、

xsi:type="CanonicalUser”

xsi:type="AmazonCustomerByEmail"

xsi:type="Group"

のいずれかの指定が必要。

ID, DisplayName,

EmailAddress, URI

(AccessControlPolicy.Acc

essControlList.Grant)

YES

(Grantee).ID Granteeのアトリビュートに、xsi:type=“CanonicalUser”を宣言した場合に指定する。アクセス権の被譲渡者のアカウントID

None

(AccessControlPolicy.Acc

essControlList.Grant.Gran

tee)

(YES)

(Grantee).Display

Name

Granteeのアトリビュートに、xsi:type=“CanonicalUser”を宣言した場合に指定する。アクセス権の被譲渡者のディスプレイネーム

None

(AccessControlPolicy.Acc

essControlList.Grant.Gran

tee)

(Grantee).

EmailAddress

Granteeのアトリビュートに、xsi:type=“AmazonCustomerByEmail” を宣言した場合に指定する。アクセス権の被譲渡者の登録されているe-mail address

None

(AccessControlPolicy.Acc

essControlList.Grant.Gran

tee)

(YES)

(Grantee).URI Granteeのアトリビュートに、xsi:type=“Group”を宣言した場合に指定する。

None

(AccessControlPolicy.Acc

essControlList.Grant.Gran

tee)

(YES)

Permission 権限の種類を指定する。

Valid Values: FULL_CONTROL | WRITE | ¥

WRITE_ACP | READ |

READ_ACP

None

(AccessControlPolicy.Acc

essControlList.Grant)

YES

• (注1) HeaderによるACLの設定と、Bodyによるリクエストは併用不可。つまり、HeaderによりACL設定のリクエストを行う場合は、bodyの指定は不要であり、Bodyによるリクエストを行う場合はHeaderによる指定は不要である。

• (注2)Headerによるリクエストの場合は必須である

Response

Response

Header

x-amz-version-id オブジェクトが一意なVersion IDを持っていた場合は、Version IDが返される

Type : String

Default : None

Response

(Body)

無し

2-3) Object Storage API オブジェクト操作

Page 46: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

46

PUT Object Copy

コマンド概要 オブジェクトを別のバケットにコピーする

Request

Request Method PUT

Path,

Parameters, etc

パス形式の場合は、Request Pathにバケット名を指定します。

Sub Resource パラメータ名

説明 必須

versionId 特定のバージョンのオブジェクトを指定する場合に指定する。署名対象文字列に含める必要がある

Header Host Virtual-Host形式でのリクエストの場合は、${バケット名}. str.cloudn-service.com で指定します。

拡張ヘッダー(注1) 説明 必須

x-amz-copy-source コピー元のオブジェクトのbucketとKeyを’/’区切りで指定する(e.g. /bucket/key)

指定する値はURLエンコードされている必要がある。また、コピー元にREAD権限が必要となる

YES

x-amz-metadata-

directive コピーする際に、コピーもとのメタデータを引き継ぐが、置き換えるかを指定する。ただし、Version ID、server-side-encryptionとstorage-classの値は引き継がない。

Type : String

Default : COPY

Valid values: COPY | REPLACE

REPLACEを指定した場合は、メタデータの値も引き継がれる。

x-amz-copy-source-if-

match

Entity Tag (ETag) 値を指定し、マッチした場合はコピーを実行する。このHeaderを指定した場合、x-amz-copy-source-if-unmodified-since header 以外の条件指定headerとの併用は出来ない。

x-amz-copy-source-if-

none-match

Entity Tag (ETag) 値を指定し、指定したETag値と異なる場合はコピーを実行する。このHeaderを指定した場合、x-amz-copy-source-if-modified-since header 以外の条件指定headerとの併用は出来ない

x-amz-copy-source-if-

unmodified-since

指定した日時以降に変更がなければ、コピーを実施する。

このHeaderを指定した場合、 x-amz-copy-source-if-match header 以外の条件指定headerとの併用は出来ない。

x-amz-copy-source-if-

modified-since

指定した日時以降に変更があれば、コピーを実施する。

このHeaderを指定した場合、 x-amz-copy-source-if-none-match header 以外の条件指定headerとの併用は出来ない。

x-amz-server-side-encryption

オブジェクトが複製される際、サーバー側で暗号化する場合のアルゴリズムを指定する。

Type : String

Valid Value: AES256

x-amz-storage-class コピーが成功した後のオブジェクトのストレージクラスを指定します。

Type : String

Valid Values: STANDARD | REDUCED_REDUNDANCY

Default : STANDARD

x-amz-acl オブジェクトにACLを設定する。

Type : String

Valid Values: private | public-read | public-read-write | authenticated-read | ¥

bucket-owner-read | bucket-owner-full-control

Default : private

x-amz-grant-read

(※)

オブジェクトの一覧に表示させる

Type : String

Default : None

Constraints : None

2-3) Object Storage API オブジェクト操作

Page 47: NTT Communications Cloudⁿ Object Storage APIマ …info.cloudn-service.com/wordpress/wp-content/uploads/...1 NTT Communications Cloudⁿ Object Storage APIマニュアル Ver.1.0

47

Request (前ページの続き)

Header x-amz-grant-write(※) 利用不可

x-amz-grant-read-acp

(※)

オブジェクトに設定されたACLのRead権限を与える

Type : String

Default : None

Constraints : None

x-amz-grant-write-acp

(※)

オブジェクトに設定されたACLの設定のRead権限を与える

Type : String

Default : None

Constraints : None

x-amz-grant-full-

control

(※)

オブジェクトに対してフルコントロール権を与える

Type : String

Default : None

Constraints : None

Body 無し

Response

Response

Header

x-amz-copy-

source-version-id

コピー元のオブジェクトのVersion ID

x-amz-server-

side-encryption

Request時にserver-side encryptionを指定した場合に、確認のため当該ヘッダーが付与される

x-amz-version-id BucketにVersioning が指定されていた場合は、新しく作成されたオブジェクトのVersion IDが返される

Response

(Body)

形式 XML

XML 構成 Node名 説明 子Node (親Node)

CopyObjectResult Responseのコンテナ ETag, LastModified

(None)

ETag 新しく作成されたオブジェクトのEntity

Tag.

None

(CopyObjectResult)

LastModified バケット名 None

(CopyObjectResult)

• ※ 特殊なAttribute Value Pairでの指定になります。Attributeは、“id” であり、Valueは、Cloudn StorageのユーザーIDとなります。 (例:x-amz-grant-read: id= “cloudnuser1” )

2-3) Object Storage API オブジェクト操作