GET Bucket (List Objects)¶
指定したバケットの一部又は全てのオブジェクトをリストで返します。
この操作はページング機能をサポートしています。一度に最大1000個のオブジェクトの一覧を取得し、markerパラメータを指定して次のリストを取得します。また、一度に取得するオブジェクトの数はmax-keysパラメータで変更することができます。
この操作を行うユーザは、対象バケットに対するREAD権限が必要です。
リクエスト情報¶
シンタックス¶
GET / HTTP/1.1
Host: {bucket name}.storage-dag.iijgio.com
Date: {date}
Authorization: {authorization string}
リクエストパラメータ¶
以下のHTTPリクエストパラメータを使用します。
パラメータ名 | 説明 | 必須 | ||||
---|---|---|---|---|---|---|
delimiter |
|
× | ||||
marker |
|
× | ||||
max-keys |
|
× | ||||
prefix |
|
× |
リクエストヘッダー¶
この操作では基本リクエストヘッダーのみ使用します。
リクエストエレメント¶
この操作ではリクエストエレメントは使用しません。
レスポンス情報¶
レスポンスヘッダー¶
この操作では基本レスポンスヘッダーのみ返します。
レスポンスエレメント¶
この操作では以下のレスポンスエレメントを返します。
名前 | 説明 | ||||||
---|---|---|---|---|---|---|---|
Contents |
|
||||||
CommonPrefixes |
|
||||||
Delimiter |
|
||||||
DisplayName |
|
||||||
ETag |
|
||||||
ID |
|
||||||
IsTruncated |
|
||||||
Key |
|
||||||
LastModified |
|
||||||
Marker |
|
||||||
MaxKeys |
|
||||||
Name |
|
||||||
Owner |
|
||||||
Prefix |
|
||||||
Size |
|
||||||
StorageClass |
|
||||||
NextMarker |
|
delimiter パラメータについて¶
GET Bucketリクエストにおけるdelimiterパラメータ指定は「結果として得られた各キーを、指定の文字の箇所で切り落とす」動作を行います。
- delimiterの例:
- 以下のオブジェクトが存在したとします。
- /foo/photo/2009/index.html
- /foo/photo/2009/12/xmas.jpg
- /foo/photo/2010/index.html
- /foo/photo/2010/01/index.html
- /foo/photo/2010/01/friends.jpg
- /foo/photo/2010/01/trip-20100115_01.jpg
- /foo/photo/2010/02/index.html
- /foo/photo/2010/02/seminar.jpg
- 以下のリクエストパラメータでバケット内のオブジェクトリストを要求したとします。
prefix=/foo/photo/2010 delimiter=/
- すると、以下の結果が返ってきます。
- /foo/photo/2010/index.html
- /foo/photo/2010/01
- /foo/photo/2010/02
prefixが”/foo/photo/2010”なので、全てのキーの中でprefixに前方一致するキーのみが候補となります。候補の各要素について、prefix直下の値(URI文字列の中でprefix部を除いた部分)を調べ、delimiterで指定された文字までを結果として残します。この結果、得られるリストは「prefix直下の実体オブジェクトと仮想的なサブディレクトリのリスト」となります。Note
「仮想的なサブディレクトリ」と表現されている部分は、オブジェクトキーをディレクトリ構造で表現したときにサブディレクトリに該当するものを表わしています。そのサブディレクトリは実際には存在しないという点に注意してください。
サンプル¶
- BucketName という名のバケット内のオブジェクトの一覧を取得するサンプル
- リクエスト
GET / HTTP/1.1 Host: BucketName.storage-dag.iijgio.com Date: Wed, 12 Oct 2009 17:50:00 GMT Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE= Content-Type: text/plain
- レスポンス
<?xml version="1.0" encoding="UTF-8"?> <ListBucketResult> <Name>bucket</Name> <Prefix/> <Marker/> <MaxKeys>1000</MaxKeys> <IsTruncated>false</IsTruncated> <Contents> <Key>my-image.jpg</Key> <LastModified>2009-10-12T17:50:30.000Z</LastModified> <ETag>"fba9dede5f27731c9771645a39863328"</ETag> <Size>434234</Size> <StorageClass>STANDARD</StorageClass> <Owner> <ID>8a6925ce4a7f21c32aa379004fef</ID> <DisplayName>mtd@dag.iijgio.com</DisplayName> </Owner> </Contents> <Contents> <Key>my-third-image.jpg</Key> <LastModified>2009-10-12T17:50:30.000Z</LastModified> <ETag>"1b2cf535f27731c974343645a3985328"</ETag> <Size>64994</Size> <StorageClass>STANDARD</StorageClass> <Owner> <ID>8a69b1ddee97f21c32aa379004fef</ID> <DisplayName>mtd@dag.iijgio.com</DisplayName> </Owner> </Contents> </ListBucketResult>
- キー名が”N”と前方一致していて、かつアルファベット順で”Ned”より後になるオブジェクトを40件取得するサンプル
(prefix=N, marker=Ned, max-keys=40)
- リクエスト
GET ?prefix=N&marker=Ned&max-keys=40 HTTP/1.1 Host: quotes.storage-dag.iijgio.com Date: Wed, 01 Mar 2009 12:00:00 GMT Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=
- レスポンス
HTTP/1.1 200 OK x-iijgio-id-2: gyB+3jRPnrkN98ZajxHXr3u7EFM67bNgSAxexeEHndCX/7GRnfTXxReKUQF28IfP x-iijgio-request-id: 3B3C7C725673C630 Date: Wed, 01 Mar 2009 12:00:00 GMT Content-Type: application/xml Content-Length: 302 Server: storage-dag.iijgio.com <?xml version="1.0" encoding="UTF-8"?> <ListBucketResult> <Name>quotes</Name> <Prefix>N</Prefix> <Marker>Ned</Marker> <MaxKeys>40</MaxKeys> <IsTruncated>false</IsTruncated> <Contents> <Key>Nelson</Key> <LastModified>2006-01-01T12:00:00.000Z</LastModified> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> <Size>5</Size> <StorageClass>STANDARD</StorageClass> <Owner> <ID>bcaf161ca5fb16fd081034f</ID> <DisplayName>webfile</DisplayName> </Owner> </Contents> <Contents> <Key>Neo</Key> <LastModified>2006-01-01T12:00:00.000Z</LastModified> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> <Size>4</Size> <StorageClass>STANDARD</StorageClass> <Owner> <ID>bcaf1ffd86a5fb16fd081034f</ID> <DisplayName>webfile</DisplayName> </Owner> </Contents> </ListBucketResult>
- “photos/2006/”直下のオブジェクトを取得するサンプル
“photos/2006/”に前方一致するキーを抽出し、”/”を区切り文字として指定します。
(prefix=photos/2006/, delimiter=/)
- リクエスト
GET ?prefix=photos/2006/&delimiter=/ HTTP/1.1 Host: quotes.storage-dag.iijgio.com Date: Wed, 01 Mar 2009 12:00:00 GMT Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=
- レスポンス
<?xml version="1.0" encoding="UTF-8"?> <ListBucketResult> <Name>johnsmith</Name> <Prefix>photos/2006/</Prefix> <Marker/> <MaxKeys>1000</MaxKeys> <Delimiter>/</Delimiter> <IsTruncated>false</IsTruncated> <Contents> <Key>photos/2006/index.html</Key> <LastModified>2009-01-01T12:00:00.000Z</LastModified> <ETag>"ce1acdafcc879d7eee54cf4e97334078"</ETag> <Size>1234</Size> <Owner> <ID>214153b66967d86f031c7487b4566cb1b</ID> <DisplayName>John Smith</DisplayName> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> <CommonPrefixes> <Prefix>photos/2006/January/</Prefix> </CommonPrefixes> </ListBucketResult>
HEAD Bucket¶
HEAD Bucketは指定したバケットが存在するかどうか、およびバケットに対してアクセス可能かどうかを返します。
バケットが存在しなければ404 Not Foundを返し、バケットが存在しアクセスするための権限を保持している場合は200 OKを、権限を保持していなければ403 Forbiddenを返します。
リクエスト情報¶
シンタックス¶
HEAD / HTTP/1.1
Host: {bucket name}.storage-dag.iijgio.com
Date: {date}
Authorization: {authorization string}
リクエストパラメータ¶
この操作ではリクエストパラメータは使用しません。
リクエストヘッダー¶
この操作では基本リクエストヘッダーのみ使用します。
リクエストエレメント¶
この操作ではリクエストエレメントは使用しません。
サンプル¶
mybucketという名のバケットが存在し、アクセス可能な場合のサンプル
- リクエスト
HEAD / HTTP/1.1 Date: Wed, 1 Oct 2014 00:00:00 GMT Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE= Host: mybucket.storage-dag.iijgio.com Connection: Keep-Alive- レスポンス
HTTP/1.1 200 OK x-iijgio-id-2: YgIPIfBiKa2bj0KMg95r/0zo3emzU4dzsD4rcKCHQUAdQkf3ShJTOOpXUueF6QKo x-iijgio-request-id: 236A8905248E5A01 Date: Wed, 1 Oct 2014 00:00:00 GMT Server: storage-dag.iijgio.com
PUT Bucket¶
新しいバケットを作成します。
バケットのアクセス制御の設定を行うには、リクエストヘッダーのx-iijgio-aclを用います。
- リージョンとは、サービスを提供する地理的に離れた領域です。現在は「JP-WEST1」のみ指定可能です。
Note
バケットには以下の制約があります。
1つのバケットに格納可能なオブジェクトの数に制限はありませんが、バケットは1契約につき最大で100個まで作成することができます。
- バケット名については以下の規定に従わなければならなりません。
- 小文字(a-z)、数字(0-9)、ピリオド(.)、アンダースコア(_)、ダッシュ(-)で構成される。
- 数字または文字で開始する。
- 文字列の長さが3~63の範囲内である。
- IPアドレス標記でない(e.g., 192.168.5.4)。
- DNS要件に従うために、以下の規定に従うことを推奨します。
- アンダースコアを使用しない。
- バケット名の終端にダッシュを使用しない。
- ピリオドを連続して使用しない。
- ピリオドの前後にダッシュを使用しない(e.g., “my-.bucket.com” 、”my.-bucket”)。
- 大文字を使用しない。
Note
バケット登録の際に100ms以内の遅延が発生する場合があります。同一バケットに対して連続した操作を行った時に 404 Not Found が返された場合は操作のリトライをお願い致します。
リクエスト情報¶
シンタックス¶
PUT / HTTP/1.1
Host: {bucket name}.storage-dag.iijgio.com
Content-Length: {length}
Date: {date}
Authorization: {authorization string}
リクエストパラメータ¶
この操作ではリクエストパラメータは使用しません。
リクエストヘッダー¶
Canned ACL で指定する場合¶
HTTPヘッダー | 説明 | 必須 | ||||||
---|---|---|---|---|---|---|---|---|
x-iijgio-acl |
|
× |
詳細に指定する場合¶
より詳細に ACL を設定する場合は以下のリクエストヘッダーを指定してください。
HTTPヘッダー | 説明 | 必須 | ||||
---|---|---|---|---|---|---|
x-iijgio-grant-read |
|
× | ||||
x-iijgio-grant-write |
|
× | ||||
x-iijgio-grant-read-acp |
|
× | ||||
x-iijgio-grant-write-acp |
|
× | ||||
x-iijgio-grant-full-control |
|
× |
設定するアカウントまたはグループはそれぞれtype=value形式で指定します。typeには以下のいずれかを指定できます。
emailAddress: アカウントのメールアドレス
id: アカウントの Show ID
- url: グループを示す以下のURL
- http://acs.dag.iijgio.com/groups/global/AllUsers
- 匿名ユーザも含め、すべてのユーザを表すグループ
x-iijgio-grant-readヘッダーを指定する例:
x-iijgio-grant-read: emailAddress="taro@dag.iijgio.com", emailAddress="jiro@dag.iijgio.com"
レスポンス情報¶
レスポンスヘッダー¶
この操作では基本レスポンスヘッダーのみ返します。
レスポンスエレメント¶
この操作はレスポンスエレメントを返しません。
エラー情報¶
この操作では以下のエラーを返します。
コード | ステータス | 内容 |
---|---|---|
InvalidAccessKeyId | 403 Forbidden | 指定のアクセスキーIDを持つユーザが存在しません。 |
SignatureDoesNotMatch | 403 Forbidden | 指定されたリクエストのシグネチャが一致しません。 |
InvalidBucketName | 400 Bad Request | バケット名が不正です。 |
InvalidLocationConstraint | 400 Bad Request | LocationConstraintに無効な値が設定されています。 |
BucketAlreadyExists | 409 Conflict | バケット名が既に使用されています。 |
BucketAlreadyOwnedByYou | 409 Conflict | 既に同名のバケット所有者です。 |
サンプル¶
- colorpictures という名のバケットを作成するサンプル
- リクエスト
PUT / HTTP/1.1 Host: colorpictures.storage-dag.iijgio.com Content-Length: 0 Date: Wed, 01 Mar 2009 12:00:00 GMT Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=
- レスポンス
HTTP/1.1 200 OK x-iijgio-id-2: YgIPIfBiKa2bj0KMg95r/0zo3emzU4dzsD4rcKCHQUAdQkf3ShJTOOpXUueF6QKo x-iijgio-request-id: 236A8905248E5A01 Date: Wed, 01 Mar 2009 12:00:00 GMT Location: /colorpictures Content-Length: 0 Server: storage-dag.iijgio.com
- バケット作成時に属するリージョンをJP-WEST1に指定するサンプル
- リクエスト
PUT / HTTP/1.1 Host: bucketName.storage-dag.iijgio.com Date: Wed, 12 Oct 2009 17:50:00 GMT Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE= Content-Type: text/plain Content-Length: 124 <CreateBucketConfiguration xmlns="http://acs.dag.iijgio.com/doc/2006-03-01/"> <LocationConstraint>JP-WEST1</LocationConstraint> </CreateBucketConfiguration >
- レスポンス
HTTP/1.1 200 OK x-iijgio-id-2: YgIPIfBiKa2bj0KMg95r/0zo3emzU4dzsD4rcKCHQUAdQkf3ShJTOOpXUueF6QKo x-iijgio-request-id: 236A8905248E5A01 Date: Wed, 01 Mar 2009 12:00:00 GMT Location: /bucketName Content-Length: 0 Server: storage-dag.iijgio.com
- バケットを作成時にACL(private)を設定するサンプル
- リクエスト
PUT / HTTP/1.1 Host: colorpictures.storage-dag.iijgio.com Content-Length: 0 x-iijgio-acl: private Date: Wed, 01 Mar 2009 12:00:00 GMT Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=
- レスポンス
HTTP/1.1 200 OK x-iijgio-id-2: YgIPIfBiKa2bj0KMg95r/0zo3emzU4dzsD4rcKCHQUAdQkf3ShJTOOpXUueF6QKo x-iijgio-request-id: 236A8905248E5A01 Date: Wed, 01 Mar 2009 12:00:00 GMT Location: /colorpictures Content-Length: 0 Server: storage-dag.iijgio.com
DELETE Bucket¶
自身が所有者であるバケットを削除します。
削除対象とするバケットは空(1つもオブジェクトが配置されていない状態)でなければなりません。従って、対象バケットが1つ以上のオブジェクトを保持している場合、それらのオブジェクトはバケットの削除前に全て削除する必要があります。
バケットはACLの設定内容にかかわらず、バケット所有者のみが削除することができます。
このリクエストではAccessKeyIdが必須であり、特定ユーザ(本サービスに有効なアカウントを持つ者)のみが利用できます。匿名ユーザは本リクエストを利用できません。
リクエスト情報¶
シンタックス¶
DELETE / HTTP/1.1
Host: {bucket name}.storage-dag.iijgio.com
Date: {date}
Authorization: {authorization string}
リクエストパラメータ¶
この操作ではリクエストパラメータは使用しません。
リクエストヘッダー¶
この操作では基本リクエストヘッダーのみ使用します。
リクエストエレメント¶
この操作ではリクエストエレメントは使用しません。
サンプル¶
- quotes という名のバケットを削除するサンプル
- リクエスト
DELETE / HTTP/1.1 Host: quotes.storage-dag.iijgio.com Date: Wed, 01 Mar 2009 12:00:00 GMT Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=
- レスポンス
HTTP/1.1 204 No Content x-iijgio-id-2: JuKZqmXuiwFeDQxhD7M8KtsKobSzWA1QEjLbTMTagkKdBX2z7Il/jGhDeJ3j6s80 x-iijgio-request-id: 32FE2CEB32F5EE25 Date: Wed, 01 Mar 2009 12:00:00 GMT Server: storage-dag.iijgio.com