PUT Bucket

新しいバケットを作成します。

このリクエストではAccessKeyIdが必須であり、特定ユーザ(本サービスに有効なアカウントを持つ者)のみが利用できます。匿名ユーザは本リクエストを利用できません。
バケットを作成することで、バケット所有者となります。
バケットの命名規則については 下記をご覧ください。
バケットが属するリージョンの設定を行うにはリクエストエレメントLocationConstraintを用います。

バケットのアクセス制御の設定を行うには、リクエストヘッダーの x-iijgio-acl を用います。

リージョンとは、サービスを提供する地理的に離れた領域です。現在は「JP-WEST1」のみ指定可能です。

バケットには以下の制約があります。

  • 1つのバケットに格納可能なオブジェクトの数に制限はありませんが、バケットは1契約につき最大で 100個まで 作成することができます。
  • バケット名については以下の規定に従わなければならなりません。
    • 小文字(a-z)、数字(0-9)、ピリオド(.)、ダッシュ(-)で構成される。
    • 数字または文字で開始する。
    • 文字列の長さが3~63の範囲内である。
    • IPアドレス標記でない(e.g., 192.168.5.4)。
    • バケット名の終端にダッシュを使用しない。
    • ピリオドを連続して使用しない。
    • ピリオドの前後にダッシュを使用しない(e.g., “my-.bucket.com” 、”my.-bucket”)。
    • 大文字を使用しない。

バケット登録の際に100ms以内の遅延が発生する場合があります。同一バケットに対して連続した操作を行った時に 404 Not Found が返された場合は操作のリトライをお願い致します。

 

リクエスト情報

シンタックス

 

PUT /{bucket name} HTTP/1.1
Host: s3api.iot.iij.jp
Content-Length: {length}
Date: {date}
Authorization: {authorization string}

 

リクエストパラメータ

この操作ではリクエストパラメータは使用しません。

リクエストヘッダー
この操作は、バケットの作成と同時に本サービスのアカウントやグループ(匿名ユーザなど)に対して   Access Control List (ACL)  として権限を付与することができます。
ACLを設定する方法として以下の2つが用意されています。ただし、両方を同時に指定することはできません。
Canned ACL で指定する場合

 

表. PUT Bucket リクエストヘッダー(Canned ACL)

HTTPヘッダー 説明 必須
x-iijgio-acl

バケットのACLを設定する

  • 型:String
  • 有効な値:private | public-read | public-read-write
  • デフォルト値:private
×

 

詳細に指定する場合

より詳細に ACL を設定する場合は以下のリクエストヘッダーを指定してください。


表. PUT Bucket リクエストヘッダー(ACL詳細指定)

HTTPヘッダー 説明 必須
x-iijgio-grant-read

このバケットにおけるオブジェクト一覧の閲覧を許可するアカウントまたはグループのリスト

  • 型:Stringデフォルト
  • 値:なし
×
x-iijgio-grant-write

このバケットに対してオブジェクトの作成、上書き、削除を許可するアカウントまたはグループのリスト

  • 型:String
  • デフォルト値:なし
×
x-iijgio-grant-read-acp

バケットACLの参照を許可するアカウントまたはグループのリスト

  • 型:Stringデフォルト
  • 値:なし
×
x-iijgio-grant-write-acp

バケットACLの設定を許可するアカウントまたはグループのリスト

  • 型:String
  • デフォルト値:なし
×
x-iijgio-grant-full-control

このバケットに対して全ての権限を付加するアカウントまたはグループのリスト

  • 型:String
  • デフォルト値:なし
×

設定するアカウントまたはグループはそれぞれ 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"

 

リクエストエレメント

この操作では以下のリクエストエレメントを使用します。

 

表. PUT Bucket リクエストエレメント一覧

名前 説明 必須
CreateBucketConfiguration

LocationConstraintを含むコンテナ

  • 型:Container
  • 親:なし
×
LocationConstraint

バケットが属するリージョン現時点では JP-WEST1 のみ指定できます。

  • 型:String
  • 有効な値:JP-WEST1
  • デフォルト値:JP-WEST1
  • 親:CreateBucketConfiguration
×

 

レスポンス情報

レスポンスヘッダー

この操作では基本レスポンスヘッダーのみ返します。

レスポンスエレメント  
この操作はレスポンスエレメントを返しません。
エラー情報

この操作では以下のエラーを返します。

 

表. PUT Bucketエラーコード一覧
コード ステータス 内容
InvalidAccessKeyId 403 Forbidden 指定のアクセスキーIDを持つユーザが存在しません。
SignatureDoesNotMatch 403 Forbidden 指定されたリクエストのシグネチャが一致しません。
InvalidBucketName 400 Bad Request バケット名が不正です。
InvalidLocationConstraint 400 Bad Request LocationConstraintに無効な値が設定されています。
BucketAlreadyExists 409 Conflict バケット名が既に使用されています。
BucketAlreadyOwnedByYou 409 Conflict 既に同名のバケット所有者です。

 

サンプル

colorpictures という名のバケットを作成するサンプル

リクエスト
PUT /colorpictures HTTP/1.1
Host: s3api.iot.iij.jp
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: s3api.iot.iij.jp