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種類が用意されています。 ウェブサイト設定を指定する場合は、それぞれの内容に応じてリクエストエレメントを指定する必要があります。
全てのリクエストをリダイレクト
名前 | 説明 | 必須 |
---|---|---|
WebsiteConfiguration | ウェブサイト設定情報を含むコンテナ
| ○ |
RedirectAllRequestsTo | バケットのウェブサイトホスティング用のエンドポイントに対するリクエストのリダイレクト先の情報 この要素は複数指定することはできません。
| ○ |
HostName | リダイレクト先のホスト名
| ○ |
Protocol | リダイレクトのリクエストに使用されるプロトコル( http もしくは https ) デフォルトではオリジナルのリクエストのプロトコルが使用されます。
| × |
高度な条件付きリダイレクト
名前 | 説明 | 必須 |
---|---|---|
WebsiteConfiguration | ウェブサイト設定情報を含むコンテナ
| ○ |
IndexDocument | ルートドメインまたはサブフォルダに対するリクエストが行われた時に表示するデフォルトのHTMLドキュメント
| ○ |
Suffix | インデックスドキュメントを示すオブジェクトキーの接尾辞 この項目の値にはスラッシュ(/)を含めてはいけません。
| ○ |
ErrorDocument | 4XXクラスのエラーが発生した場合に表示するHTMLエラードキュメント
| × |
Key | HTMLエラードキュメントとして表示するオブジェクトのオブジェクトキー
| △ |
RoutingRules | RoutingRule 要素のコレクションを入れるコンテナ このコンテナの中には少なくとも1つの RoutingRule 要素が存在する必要があります。
| × |
RoutingRule | 条件とリダイレクトを明示したルール この条件が満たされたときにこのリダレクトが適用されます。
| ○ |
Condition | 条件を記述するためのコンテナ この条件が満たされているときに、指定されたリダイレクトが適用されます。ルーティングの中に条件がない場合は、そのルールはすべてのリクエストに適用されます。
| × |
KeyPrefixEquals | リダイレクトするオブジェクトキーのプレフィックス このプレフィックスに前方一致するリクエストがリダイレクトされます。HttpErrorCodeReturnedEquals 要素が指定されていない場合は KeyPrefixEquals は必須となります。 KeyPrefixEquals と HttpErrorCodeReturnedEquals の両方が指定されている場合は、両方が真である場合にのみ条件が満たされていると見なされます。
| △ |
HttpErrorCodeReturnedEquals | リダイレクトするHTTPエラーコード エラーが発生した場合に、このHTTPエラーコードに一致している場合にのみ、リダイレクトが適用されます。HttpErrorCodeReturnedEquals 要素が指定されていない場合は KeyPrefixEquals は必須となります。 KeyPrefixEquals と HttpErrorCodeReturnedEquals の両方が指定されている場合は、両方が真である場合にのみ条件が満たされていると見なされます。
| △ |
Redirect | リダイレクトの内容を記述するためのコンテナ リクエストのリダイレクトに関する指示を表すのに使用されます。リクエストを別のホストや別のページにリダイレクトすることも、別のプロトコルの使用を指定することもできます。1つの RoutingRule に対して、1つの Redirect 要素が存在する必要があります。1つの Redirect 要素の中に、 Protocol 、 HostName 、 ReplaceKeyPrefixWith 、 ReplaceKeyWith 、 HttpRedirectCode の要素のうち1つ以上が存在する必要があります。
| ○ |
Protocol | レスポンスとして返される Location ヘッダーで使用されるプロトコル( http または https ) Protocol は、同じレベルの要素の1つが指定されている場合は省略可能です。
| × |
HostName | レスポンスとして返される Location ヘッダーで使用されるホスト名 HostName は、同じレベルの要素の1つが指定されている場合は省略可能です。
| × |
ReplaceKeyPrefixWith | リダイレクトリクエストの中の KeyPrefixEquals の値を置き変えるオブジェクトキーのプレフィックス ReplaceKeyPrefixWith は、同じレベルの要素の1つが指定されている場合は省略可能です。これを指定できるのは、 ReplaceKeyWith が指定されていない場合のみです。
| × |
ReplaceKeyWith | レスポンスとして返される Location ヘッダーで使用されるオブジェクトキー ReplaceKeyWith は、同じレベルの要素の1つが指定されている場合は省略可能です。これを指定できるのは、 ReplaceKeyPrefixWith が指定されていない場合のみです。
| × |
HttpRedirectCode | レスポンスで使用するHTTPリダイレクトコード HttpRedirectCode は、同じレベルの要素の1つが指定されている場合は省略可能です。
| × |
レスポンス情報
レスポンスヘッダー
この操作では基本レスポンスヘッダーのみ返します。
レスポンスエレメント
エラー情報
この操作は共通のエラーレスポンスを返します。詳しくは エラーコード一覧 をご覧ください。
サンプル
サンプル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