PUT Bucket cors

バケットのCORS設定を登録します。もし既に設定されている場合は、指定したCORS設定に置き換えます。

この操作を行う利用者は、バケット所有者か対象バケットに対してバケットポリシーの dag:PutBucketCORS 権限を付与されている必要があります。
デフォルトではバケット所有者のみこの操作が許可されており、バケット所有者はバケットポリシーによって他のアカウントに権限を付与することができます。

 

リクエスト情報

シンタックス
PUT /{bucket name}?cors HTTP/1.1
Host: s3api.iot.iij.jp
Content-Length: {length}
Date: {date}
Authorization: {authorization string}
Content-MD5: {MD5}

<CORSConfiguration>
  <CORSRule>
    <AllowedOrigin>{Origin you want to allow cross-domain requests from}</AllowedOrigin>
    <AllowedOrigin>...</AllowedOrigin>
    ...
    <AllowedMethod>{HTTP method}</AllowedMethod>
    <AllowedMethod>...</AllowedMethod>
    ...
    <MaxAgeSeconds>{Time in seconds your browser to cache the pre-flight OPTIONS response for a resource}</MaxAgeSeconds>
    <AllowedHeader>{Headers that you want the browser to be allowed to send}</AllowedHeader>
    <AllowedHeader>...</AllowedHeader>
     ...
    <ExposeHeader>{Headers in the response that you want accessible from client application}</ExposeHeader>
    <ExposeHeader>...</ExposeHeader>
     ...
  </CORSRule>
  <CORSRule>
    ...
  </CORSRule>
    ...
</CORSConfiguration>

 

リクエストパラメータ

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

リクエストヘッダー

この操作では基本リクエストヘッダーに加え、以下のヘッダーを使用します。


表. PUT Bucket cors リクエストヘッダー一覧

HTTPヘッダー説明必須
Content-MD5

Base64でエンコードされたRFC 1864に準拠した128ビットMD5のダイジェストメッセージ(ヘッダーは含まれません)を指定します。
送信データの保全チェックに用います。

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

 

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


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

名前説明必須
CORSConfiguration

CORSRuleを格納するコンテナ

CORSRuleは100件まで指定することができます。

  • 型:Container
  • 親:なし
CORSRule

クロスサイトリクエストを許可するための条件

設定以下の要素はこのコンテナの子要素となります。

  • 型:Container
  • 親:CORSConfiguration
ID

この条件設定(CORSRule)を一意に識別するための文字列

  • 型:String
  • 親:CORSRule
×
AllowedHeader

クロスサイトリクエストに含めることができるヘッダー(Access-Control-Allow-Headers)

クライアントはプリフライトリクエスト(クロスサイトリクエストが可能かどうかを確認するためのOPTIONSメソッドのリクエスト)に Access-Control-Request-Headers を指定することでヘッダーが指定可能かどうかを確認することができ、いずれかの AllowedHeader に一致すれば指定可能なヘッダーとして Access-Control-Allow-Headers に含めて返されます。AllowedHeaderには最大1つのワイルドカード文字(*)を含めることができます。例えば本サービス固有のヘッダーを有効にするには x-iijgio-* を指定することで可能になります。

  • 型:String
  • 親:CORSRule
×
AllowedMethod

クロスサイトリクエストで許可するHTTPメソッド

  • 型:Enum (GET, PUT, HEAD, POST, DELETE)
  • 親:CORSRule
AllowedOrigin

クロスサイトリクエストを許可するオリジン

AllowedOriginには最大1つのワイルドカード文字(*)を含めることができます。例えば *.example.com などを指定することで example.com の全てのサブドメインを許可することができます。また、ワイルドカードのみ(*)を指定することで全てのドメイン/オリジンを許可することができます。

  • 型:String
  • 親:CORSRule
ExposeHeader

Access-Control-Expose-Headers としてクライアントに示すクロスサイトリクエストで指定可能なヘッダー

  • 型:String
  • 親:CORSRule
×
MaxAgeSeconds

プリフライトリクエストをブラウザでキャッシュできる時間(秒)

  • 型:Integer
  • 親:CORSRule
×
 

レスポンス情報

 
レスポンスヘッダー

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

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

この操作は共通のエラーレスポンスを返します。詳しくは エラーコード一覧 をご覧ください。

 

サンプル

バケットのCORS設定を取得するサンプル

リクエスト
PUT /mybucket?cors HTTP/1.1
Host: s3api.iot.iij.jp
Date: Wed, 1 Oct 2014 00:00:00 GMT
Content-MD5: JpqnP/EuKnsLJUEx4yd5NQ==
Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=
Content-Length: 216

<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>http://www.example.com</AllowedOrigin>
   <AllowedMethod>PUT</AllowedMethod>
   <AllowedMethod>POST</AllowedMethod>
   <AllowedMethod>DELETE</AllowedMethod>
   <AllowedHeader>*</AllowedHeader>
   <MaxAgeSeconds>3000</MaxAgeSec>
 </CORSRule>
 <CORSRule>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
   <AllowedHeader>*</AllowedHeader>
   <MaxAgeSeconds>3000</MaxAgeSeconds>
 </CORSRule>
</CORSConfiguration>
レスポンス
HTTP/1.1 200 OK
x-iijgio-id-2: eftixk72aD6Ap51TnqcoF8eFidJG9Z/2mkiDFu8yU9AS1ed4OpIszj7UDNEHGran
x-iijgio-request-id: 318BC8BC148832E5
Date: Wed, 1 Oct 2014 00:00:00 GMT
Server: s3api.iot.iij.jp