PUT Bucket website

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

  • この操作を行う利用者は、バケット所有者か対象バケットに対してバケットポリシーの dag:PutBucketWebsite 権限を付与されている必要があります。
  • デフォルトではバケット所有者のみこの操作が許可されており、バケット所有者はバケットポリシーによって他のアカウントに権限を付与することができます。
  • ウェブサイト設定の機能(デフォルトページ、エラーページの表示やリダイレクト等)は通常のREST API用のエンドポイントへのアクセスでは機能しません。専用のエンドポイントへのアクセスが必要です。詳細はデータストレージ概要内の「静的Webサイトホスティングを確認してください。

 

リクエスト情報

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

<WebsiteConfiguration xmlns="http://acs.dag.iijgio.com/doc/2006-03-01/">
  <!-- website configuration information. -->
</WebsiteConfiguration>

 

リクエストパラメータ

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

リクエストヘッダー
この操作では基本リクエストヘッダーのみ使用します。
リクエストエレメント

ウェブサイト設定は、リダイレクトの設定として 全てのリクエストを(他のウェブサイトへ)リダイレクト  高度な条件付きリダイレクト の2種類が用意されています。 ウェブサイト設定を指定する場合は、それぞれの内容に応じてリクエストエレメントを指定する必要があります。

全てのリクエストをリダイレクト

表. GET Bucket website リクエストエレメント一覧(リダイレクト)

名前説明必須
WebsiteConfiguration

ウェブサイト設定情報を含むコンテナ

  • 型:Container
  • 親:なし
RedirectAllRequestsTo

バケットのウェブサイトホスティング用のエンドポイントに対するリクエストのリダイレクト先の情報

この要素は複数指定することはできません。

  • 型:Container
  • 親:WebsiteConfiguration
HostName

リダイレクト先のホスト名

  • 型:String
  • 親:RedirectAllRequestsTo
Protocol

リダイレクトのリクエストに使用されるプロトコル( http もしくは https )

デフォルトではオリジナルのリクエストのプロトコルが使用されます。

  • 型:String
  • 親:RedirectAllRequestsTo
×

 

高度な条件付きリダイレクト


表. GET Bucket website レスポンスエレメント一覧(詳細)

名前説明必須
WebsiteConfiguration

ウェブサイト設定情報を含むコンテナ

  • 型:Container
  • 親:なし
IndexDocument

ルートドメインまたはサブフォルダに対するリクエストが行われた時に表示するデフォルトのHTMLドキュメント

  • 型:Container
  • 親:WebsiteConfiguration
Suffix

インデックスドキュメントを示すオブジェクトキーの接尾辞

この項目の値にはスラッシュ(/)を含めてはいけません。

  • 型:String
  • 親:IndexDocument
ErrorDocument

4XXクラスのエラーが発生した場合に表示するHTMLエラードキュメント

  • 型:String
  • 親:CORSRule
×
Key

HTMLエラードキュメントとして表示するオブジェクトのオブジェクトキー

  • 型:String
  • 親:ErrorDocument
RoutingRules

RoutingRule 要素のコレクションを入れるコンテナ

このコンテナの中には少なくとも1つの RoutingRule 要素が存在する必要があります。

  • 型:String
  • 親:WebsiteConfiguration
×
RoutingRule

条件とリダイレクトを明示したルール

この条件が満たされたときにこのリダレクトが適用されます。

  • 型:String
  • 親:RoutingRules
Condition

条件を記述するためのコンテナ

この条件が満たされているときに、指定されたリダイレクトが適用されます。ルーティングの中に条件がない場合は、そのルールはすべてのリクエストに適用されます。

  • 型:Container
  • 親:RoutingRule
×
KeyPrefixEquals

リダイレクトするオブジェクトキーのプレフィックス

このプレフィックスに前方一致するリクエストがリダイレクトされます。HttpErrorCodeReturnedEquals 要素が指定されていない場合は KeyPrefixEquals は必須となります。 KeyPrefixEquals と HttpErrorCodeReturnedEquals の両方が指定されている場合は、両方が真である場合にのみ条件が満たされていると見なされます。

  • 型:String
  • 親:Condition
HttpErrorCodeReturnedEquals

リダイレクトするHTTPエラーコード

エラーが発生した場合に、このHTTPエラーコードに一致している場合にのみ、リダイレクトが適用されます。HttpErrorCodeReturnedEquals 要素が指定されていない場合は KeyPrefixEquals は必須となります。 KeyPrefixEquals と HttpErrorCodeReturnedEquals の両方が指定されている場合は、両方が真である場合にのみ条件が満たされていると見なされます。

  • 型:String
  • 親:Condition
Redirect

リダイレクトの内容を記述するためのコンテナ

リクエストのリダイレクトに関する指示を表すのに使用されます。リクエストを別のホストや別のページにリダイレクトすることも、別のプロトコルの使用を指定することもできます。1つの RoutingRule に対して、1つの Redirect 要素が存在する必要があります。1つの Redirect 要素の中に、 Protocol 、 HostName 、 ReplaceKeyPrefixWith 、 ReplaceKeyWith 、 HttpRedirectCode の要素のうち1つ以上が存在する必要があります。

  • 型:Container
  • 親:RoutingRules
Protocol

レスポンスとして返される Location ヘッダーで使用されるプロトコル( http または https )

Protocol は、同じレベルの要素の1つが指定されている場合は省略可能です。

  • 型:String
  • 親:Redirect
×
HostName

レスポンスとして返される Location ヘッダーで使用されるホスト名

HostName は、同じレベルの要素の1つが指定されている場合は省略可能です。

  • 型:String
  • 親:Redirect
×
ReplaceKeyPrefixWith

リダイレクトリクエストの中の KeyPrefixEquals の値を置き変えるオブジェクトキーのプレフィックス

ReplaceKeyPrefixWith は、同じレベルの要素の1つが指定されている場合は省略可能です。これを指定できるのは、 ReplaceKeyWith が指定されていない場合のみです。

  • 型:String
  • 親:Redirect
×
ReplaceKeyWith

レスポンスとして返される Location ヘッダーで使用されるオブジェクトキー

ReplaceKeyWith は、同じレベルの要素の1つが指定されている場合は省略可能です。これを指定できるのは、 ReplaceKeyPrefixWith が指定されていない場合のみです。

  • 型:String
  • 親:Redirect
×
HttpRedirectCode

レスポンスで使用するHTTPリダイレクトコード

HttpRedirectCode は、同じレベルの要素の1つが指定されている場合は省略可能です。

  • 型:String
  • 親:Redirect
×

 

 

レスポンス情報

レスポンスヘッダー

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

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

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

 

サンプル

サンプル1:バケットをウェブサイトとして設定する

example.com というバケットをウェブサイトとして設定します。このサンプルでは基本的なウェブサイト設定として、インデックスドキュメントとエラードキュメントを指定します。

 リクエスト
PUT /example.com?website HTTP/1.1
Host: s3api.iot.iij.jp
Content-Length: 256
Date: Wed, 1 Oct 2014 00:00:00 GMT
Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=

<WebsiteConfiguration xmlns='http://acs.dag.iijgio.com/doc/2006-03-01/'>
    <IndexDocument>
        <Suffix>index.html</Suffix>
    </IndexDocument>
    <ErrorDocument>
        <Key>error.html</Key>
    </ErrorDocument>
</WebsiteConfiguration>
レスポンス
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
Content-Length: 0
Server: s3api.iot.iij.jp

 

サンプル2:全てのリクエストをリダイレクトす 

www.example.com というバケットを example.com へリダイレクトするウェブサイトとして設定します。

リクエスト
PUT /example.com?website HTTP/1.1
Host: s3api.iot.iij.jp
Content-Length: 182
Date: Wed, 1 Oct 2014 00:00:00 GMT
Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=

<WebsiteConfiguration xmlns='http://acs.dag.iijgio.com/doc/2006-03-01/'>
  <RedirectAllRequestsTo>
     <HostName>example.com</HostName>
   </RedirectAllRequestsTo>
</WebsiteConfiguration>
レスポンス
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
Content-Length: 0
Server: s3api.iot.iij.jp

 

サンプル3:高度なリダイレクトの条件を設定する 

/docs/ に対するリクエストを /documents/ にリダイレクトするウェブサイト設定を登録します。

リクエスト
PUT /example.com?website HTTP/1.1
Host: s3api.iot.iij.jp
Content-Length: 470
Date: Wed, 1 Oct 2014 00:00:00 GMT
Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=

<WebsiteConfiguration xmlns='http://acs.dag.iijgio.com/doc/2006-03-01/'>
  <IndexDocument>
    <Suffix>index.html</Suffix>
  </IndexDocument>
  <ErrorDocument>
    <Key>error.html</Key>
  </ErrorDocument>

  <RoutingRules>
    <RoutingRule>
    <Condition>
      <KeyPrefixEquals>docs/</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <ReplaceKeyPrefixWith>documents/</ReplaceKeyPrefixWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
</WebsiteConfiguration>
レスポンス
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
Content-Length: 0
Server: s3api.iot.iij.jp

 

サンプル4:エラー時のリダイレクトを設定する

リクエストされたオブジェクトが見つからないときに、リクエストを外部のサイトへリダイレクトするウェブサイト設定を登録します。
以下は、オブジェクトが存在しない場合に example.com  errors というサブディレクトリへリダイレクトするサンプルです。

リクエスト
PUT /example.com?website HTTP/1.1
Host: s3api.iot.iij.jp
Content-Length: 470
Date: Wed, 1 Oct 2014 00:00:00 GMT
Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=

<WebsiteConfiguration xmlns='http://acs.dag.iijgio.com/doc/2006-03-01/'>
  <IndexDocument>
    <Suffix>index.html</Suffix>
  </IndexDocument>
  <ErrorDocument>
    <Key>error.html</Key>
  </ErrorDocument>

  <RoutingRules>
     <RoutingRule>
     <Condition>
       <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals >
     </Condition>
     <Redirect>
       <HostName>example.com</HostName>
       <ReplaceKeyPrefixWith>errors/</ReplaceKeyPrefixWith>
     </Redirect>
     </RoutingRule>
  </RoutingRules>
</WebsiteConfiguration>
レスポンス
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
Content-Length: 0
Server: s3api.iot.iij.jp