バケットに対して構成されている静的 Web サイトホスティングの状態とリダイレクトルールを照会します。
注記
GetBucketWebsite 操作を呼び出して、バケットに構成されている静的 Web サイトホスティングの状態とリダイレクトルールを照会するには、oss:GetBucketWebsite
権限が必要です。詳細については、「RAM ユーザーにカスタムポリシーをアタッチする」をご参照ください。
リクエスト構造
GET /?website HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
リクエストヘッダー
GetBucketWebsite リクエストには、共通のリクエストヘッダーのみが含まれています。詳細については、「共通リクエストヘッダー」をご参照ください。
レスポンスヘッダー
GetBucketWebsite リクエストへのレスポンスには、共通のレスポンスヘッダーのみが含まれています。詳細については、「共通レスポンスヘッダー」をご参照ください。
レスポンス要素
次の表に、GetBucketWebsite リクエストへのレスポンスにおける WebsiteConfiguration 要素について説明します。
要素
タイプ
例
説明
WebsiteConfiguration
コンテナー
該当なし
ルートノード。
親ノード: なし
次の表に、GetBucketWebsite リクエストへのレスポンスにおける IndexDocument の要素について説明します。
要素
タイプ
例
説明
IndexDocument
コンテナー
該当なし
デフォルトのホームページを格納するために使用されるコンテナー。
親ノード: WebsiteConfiguration
Suffix
文字列
index.html
デフォルトのホームページ。
親ノード: IndexDocument
次の表に、GetBucketWebsite リクエストへのレスポンスにおける ErrorDocument の要素について説明します。
要素
タイプ
例
説明
ErrorDocument
コンテナー
該当なし
エラーページを格納するために使用されるコンテナー。
親ノード: WebsiteConfiguration
Key
文字列
error.html
エラーページ。
親ノード: ErrorDocument
HttpStatus
文字列
404
エラーページとともに返される HTTP ステータスコード。
親ノード: ErrorDocument
次の表に、GetBucketWebsite リクエストへのレスポンスにおける RoutingRules、RoutingRule、および RuleNumber の要素について説明します。
要素
タイプ
例
説明
RoutingRules
コンテナー
該当なし
RoutingRule を格納するために使用されるコンテナー。
親ノード: WebsiteConfiguration
RoutingRule
コンテナー
該当なし
リダイレクトルールまたはミラーリングベースの原点復帰ルール。
親ノード: RoutingRules
RuleNumber
正の整数
1
リダイレクトルールまたはミラーリングベースの原点復帰ルールを照合して実行するために使用されるシーケンス番号。
リダイレクトルールはこの要素に基づいて照合されます。一致に成功した場合、そのルールのみが実行され、後続のルールは実行されません。
親ノード: RoutingRule
次の表に、GetBucketWebsite リクエストへのレスポンスにおける RoutingRules、RoutingRule、および Condition の要素について説明します。
要素
タイプ
例
説明
Condition
コンテナー
該当なし
一致条件。指定されたすべての条件が満たされた場合にのみ、ルールが実行されます。
親ノード: RoutingRule
KeyPrefixEquals
文字列
abc
オブジェクト名のプレフィックス。名前に指定されたプレフィックスが含まれているオブジェクトのみがルールに一致します。
親ノード: Condition
HttpErrorCodeReturnedEquals
HTTP ステータスコード
404
返される HTTP ステータスコード。指定されたオブジェクトにアクセスし、指定されたステータスコードが返された場合にのみ、ルールが一致します。リダイレクトルールがミラーリングベースの原点復帰ルールの場合、この要素の値は 404 です。
親ノード: Condition
IncludeHeader
コンテナー
該当なし
リクエストで指定されたヘッダー。指定されたヘッダーがリクエストに含まれており、ヘッダー値が指定された値と等しい場合にのみ、ルールが一致します。最大 5 つの IncludeHeader コンテナーを指定できます。
親ノード: IncludeHeader
Key
文字列
host
ヘッダーのキー。指定されたヘッダーがリクエストに含まれており、ヘッダー値が Equals で指定された値と等しい場合にのみ、ルールが一致します。
親ノード: IncludeHeader
Equals
文字列
test.oss-cn-beijing-internal.aliyuncs.com
ヘッダーの値。Key で指定されたヘッダーがリクエストに含まれており、ヘッダー値が指定された値と等しい場合にのみ、ルールが一致します。
親ノード: IncludeHeader
次の表に、GetBucketWebsite リクエストへのレスポンスにおける RoutingRules、RoutingRule、および Redirect の要素について説明します。
要素
タイプ
例
説明
Redirect
コンテナー
該当なし
ルールが一致した後に実行される操作。
親ノード: RoutingRule
RedirectType
文字列
Mirror
リダイレクトタイプ。
Mirror: ミラーリングベースの原点復帰。
External: 外部リダイレクト。Object Storage Service (OSS) は 3xx HTTP リダイレクトコードと Location ヘッダーを返して、アクセスを別の IP アドレスにリダイレクトします。
AliCDN: Alibaba Cloud Content Delivery Network (CDN) に基づくリダイレクト。OSS はリクエストに追加のヘッダーを追加します。これは External タイプとは異なります。CDN はヘッダーを識別した後、アクセスを指定された IP アドレスにリダイレクトし、リダイレクトリクエストの代わりに取得したデータをユーザーに返します。
親ノード: Redirect
PassQueryString
ブール値
false
システムがリダイレクトルールまたはミラーリングベースの原点復帰ルールを実行するときに、元のリクエストのリクエストパラメーターをリダイレクトリクエストに含めるかどうかを示します。
PassQueryString パラメーターが true に設定されており、"?a=b&c=d" が OSS に送信されたリクエストに含まれている場合、リダイレクトモードが 302 のときにこのパラメーターが Location ヘッダーに追加されます。たとえば、リクエストに "Location: www.example.com?a=b&c=d" が含まれており、RedirectType の値が Mirror の場合、a=b&c=d パラメーターが原点復帰リクエストに含まれます。
デフォルト値: false
親ノード: Redirect
MirrorURL
文字列
http://example.com
ミラーリングベースの原点復帰のソース URL。この要素は、RedirectType の値が Mirror の場合にのみ有効になります。
ソース URL は http:// または https:// で始まり、スラッシュ (/) で終わる必要があります。OSS は URL の末尾にオブジェクト名を追加して、原点復帰 URL を生成します。
たとえば、アクセスするオブジェクトの名前が myobject であるとします。MirrorURL が
http://example.com/
に設定されている場合、原点復帰 URL はhttp://example.com/myobject
になります。MirrorURL がhttp://example.com/dir1/
に設定されている場合、原点復帰 URL はhttp://example.com/dir1/myobject
になります。親ノード: Redirect
MirrorPassQueryString
ブール値
false
この要素は PassQueryString と同じ役割を果たし、PassQueryString よりも優先順位が高くなります。この要素は、RedirectType の値が Mirror の場合にのみ有効になります。
デフォルト値: false
親ノード: Redirect
MirrorFollowRedirect
ブール値
true
原点が 3xx HTTP ステータスコードを返した場合に、アクセスを Location で指定されたアドレスにリダイレクトするかどうかを示します。この要素は、RedirectType の値が Mirror の場合にのみ有効になります。
たとえば、ミラーリングベースの原点復帰リクエストが開始されたときに、原点が 302 を返し、Location が指定されているとします。
true: OSS は Location で指定されたアドレスへのリクエストを続行します。
アクセスは最大 10 回リダイレクトできます。10 回を超えると、エラーメッセージが返されます。
false: OSS は 302 を返し、Location をパススルーします。
デフォルト値: true
親ノード: Redirect
MirrorCheckMd5
ブール値
false
OSS が原点から返されたレスポンスの本文の MD5 ハッシュをチェックするかどうかを示します。この要素は、RedirectType の値が Mirror の場合にのみ有効になります。
このパラメーターの値が true で、原点から返されたレスポンスに Content-Md5 ヘッダーが含まれている場合、OSS は取得したデータの MD5 ハッシュがヘッダー値と一致するかどうかをチェックします。取得したデータの MD5 ハッシュがヘッダー値と一致しない場合、OSS はデータを保存しません。
デフォルト値: false
親ノード: Redirect
MirrorHeaders
コンテナー
該当なし
バケットにミラーリングベースの原点復帰ルールが指定されている場合に含まれるヘッダー。この要素は、RedirectType の値が Mirror の場合にのみ有効になります。
親ノード: Redirect
PassAll
ブール値
true
OSS がすべてのリクエストヘッダーを原点にパススルーするかどうかを示します。リクエストヘッダーには、予約済みヘッダーと、
oss-、x-oss-、および x-drs-
で始まるヘッダーは含まれません。この要素は、RedirectType の値が Mirror の場合にのみ有効になります。デフォルト値: false
親ノード: MirrorHeaders
Pass
文字列
myheader-key1
原点にパススルーするヘッダー。この要素は、RedirectType の値が Mirror の場合にのみ有効になります。
ヘッダーの長さは最大 1,024 バイトで、文字、数字、およびハイフン (-) のみを含めることができます。
最大 10 個の Pass ヘッダーを指定できます。
親ノード: MirrorHeaders
Remove
文字列
myheader-key3
原点へのパススルーが許可されていないヘッダー。最大 10 個の Remove ヘッダーを指定できます。この要素は PassAll とともに使用されます。ヘッダーの長さは最大 1,024 バイトです。このパラメーターの文字セットは Pass と同じです。この要素は、RedirectType の値が Mirror の場合にのみ有効になります。
親ノード: MirrorHeaders
Set
コンテナー
該当なし
原点に送信されるヘッダーを示します。指定されたヘッダーは、リクエストにヘッダーが含まれているかどうかに関係なく、原点から返されたデータで構成されます。最大 10 個の Set コンテナーを指定できます。この要素は、RedirectType の値が Mirror の場合にのみ有効になります。
親ノード: MirrorHeaders
Key
文字列
myheader-key5
ヘッダーのキー。キーの長さは最大 1,024 バイトです。このパラメーターの文字セットは Pass と同じです。この要素は、RedirectType の値が Mirror の場合にのみ有効になります。
親ノード: Set
Value
文字列
myheader-value5
ヘッダーの値。値の長さは最大 1,024 バイトで、"\r\n" を含めることはできません。この要素は、RedirectType の値が Mirror の場合にのみ有効になります。
親ノード: Set
Protocol
文字列
http
アクセスをリダイレクトするために使用されるプロトコル。この要素は、RedirectType の値が External または AliCDN の場合にのみ有効になります。
たとえば、test という名前のオブジェクトにアクセスし、Protocol が https に設定されており、Hostname が
example.com
に設定されている場合、Location ヘッダー値はhttps://example.com/test
になります。有効な値: http および https。
親ノード: Redirect
HostName
文字列
example.com
リダイレクトに使用されるドメイン名。ドメイン名の命名規則に準拠している必要があります。この要素は、RedirectType の値が External または AliCDN の場合にのみ有効になります。
たとえば、test という名前のオブジェクトにアクセスし、Protocol が https に設定されており、Hostname が
example.com
に設定されている場合、Location ヘッダーはhttps://www.example.com/test
になります。親ノード: Redirect
HttpRedirectCode
HTTP ステータスコード
301
レスポンスの HTTP リダイレクトコード。この要素は、RedirectType の値が External または AliCDN の場合にのみ有効になります。
有効な値: 301、302、および 307
親ノード: Redirect
ReplaceKeyPrefixWith
文字列
def/
リダイレクトリクエストでオブジェクト名のプレフィックスを置き換えるために使用される文字列。この要素は、RedirectType の値が External または AliCDN の場合にのみ有効になります。
たとえば、
abc/test.txt
という名前のオブジェクトにアクセスし、ReplaceKeyPrefixWith がdef/
に設定されている場合、Location ヘッダーの値は KeyPrefixEquals の値が空かどうかによって異なります。KeyPrefixEquals の値が
abc/
に設定されている場合、Location ヘッダー値はhttp://example.com/def/test.txt
になります。KeyPrefixEquals が空の場合、Location ヘッダー値は
http://example.com/def/abc/test.txt
になります。
親ノード: Redirect
ReplaceKeyWith
文字列
prefix/${key}.suffix
リダイレクトリクエストでオブジェクト名を置き換えるために使用される文字列。この要素は、RedirectType の値が External または AliCDN の場合にのみ有効になります。
この要素は ${key} 変数をサポートしています。これはリクエストのオブジェクト名を示します。たとえば、test という名前のオブジェクトにアクセスし、ReplaceKeyWith が
prefix/${key}.suffix
に設定されている場合、Location ヘッダー値はhttp://example.com/prefix/test.suffix
になります。親ノード: Redirect
例
サンプルリクエスト
Get /?website HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Thu, 13 Sep 2012 07:51:28 GMT
Authorization: OSS qn6q**************:77Dv****************
サンプルレスポンス
静的 Web サイトホスティングルールが構成されている場合のサンプルレスポンス
HTTP/1.1 200 x-oss-request-id: 534B371674E88A4D8906008B Date: Thu, 13 Sep 2012 07:51:28 GMT Connection: keep-alive Content-Length: 218 Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <WebsiteConfiguration xmlns="http://doc.oss-cn-hangzhou.aliyuncs.com"> <IndexDocument> <Suffix>index.html</Suffix> </IndexDocument> <ErrorDocument> <Key>error.html</Key> <HttpStatus>404</HttpStatus> </ErrorDocument> </WebsiteConfiguration>
静的 Web サイトホスティングルールが構成されていない場合のサンプルレスポンス
HTTP/1.1 404 x-oss-request-id: 534B371674E88A4D8906008B Date: Thu, 13 Sep 2012 07:56:46 GMT Connection: keep-alive Content-Length: 308 Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <Error xmlns="http://doc.oss-cn-hangzhou.aliyuncs.com"> <Code>NoSuchWebsiteConfiguration</Code> <Message>指定されたバケットには Web サイト構成がありません。</Message> <BucketName>oss-example</BucketName> <RequestId>505191BEC4689A033D00236F</RequestId> <HostId>oss-example.oss-cn-hangzhou.aliyuncs.com</HostId> </Error>
完全なサンプルレスポンス
GET /?website HTTP/1.1
Date: Fri, 27 Jul 2018 09:07:41 GMT
Host: test.oss-cn-hangzhou-internal.aliyuncs.com
Authorization: OSS qn6q**************:77Dv****************
User-Agent: aliyun-sdk-python-test/0.4.0
<?xml version="1.0" encoding="UTF-8"?>
<WebsiteConfiguration>
<IndexDocument>
<Suffix>index.html</Suffix>
</IndexDocument>
<ErrorDocument>
<Key>error.html</Key>
<HttpStatus>404</HttpStatus>
</ErrorDocument>
<RoutingRules>
<RoutingRule>
<RuleNumber>1</RuleNumber>
<Condition>
<KeyPrefixEquals>abc/</KeyPrefixEquals>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<RedirectType>Mirror</RedirectType>
<PassQueryString>true</PassQueryString>
<MirrorURL>http://example.com/</MirrorURL>
<MirrorPassQueryString>true</MirrorPassQueryString>
<MirrorFollowRedirect>true</MirrorFollowRedirect>
<MirrorCheckMd5>false</MirrorCheckMd5>
<MirrorHeaders>
<PassAll>true</PassAll>
<Pass>myheader-key1</Pass>
<Pass>myheader-key2</Pass>
<Remove>myheader-key3</Remove>
<Remove>myheader-key4</Remove>
<Set>
<Key>myheader-key5</Key>
<Value>myheader-value5</Value>
</Set>
</MirrorHeaders>
</Redirect>
</RoutingRule>
<RoutingRule>
<RuleNumber>2</RuleNumber>
<Condition>
<IncludeHeader>
<Key>host</Key>
<Equals>test.oss-cn-beijing-internal.aliyuncs.com</Equals>
</IncludeHeader>
<KeyPrefixEquals>abc/</KeyPrefixEquals>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<RedirectType>AliCDN</RedirectType>
<Protocol>http</Protocol>
<HostName>example.com</HostName>
<PassQueryString>false</PassQueryString>
<ReplaceKeyWith>prefix/${key}.suffix</ReplaceKeyWith>
<HttpRedirectCode>301</HttpRedirectCode>
</Redirect>
</RoutingRule>
</RoutingRules>
</WebsiteConfiguration>
HTTP/1.1 200 OK
Server: AliyunOSS
Date: Fri, 27 Jul 2018 09:07:41 GMT
Content-Type: application/xml
Content-Length: 2102
Connection: keep-alive
x-oss-request-id: 5B5AE0DD2F7938C45FCED4BA
x-oss-server-time: 47
OSS SDK
以下のプログラミング言語の OSS SDK を使用して、GetBucketWebsite 操作を呼び出すことができます。
ossutil
GetBucketWebsite 操作に対応する ossutil コマンドについては、「get-bucket-website」をご参照ください。
エラーコード
エラーコード | HTTP ステータスコード | 説明 |
NoSuchBucket | 404 | このようなバケットが見つからないために返されるエラーメッセージ。 |
AccessDenied | 403 | この操作を実行する権限がないために返されるエラーメッセージ。バケット所有者のみが、バケットの静的 Web サイトホスティングの状態構成を照会できます。 |
NoSuchWebsiteConfiguration | 404 | 指定されたバケットに静的 Web サイトホスティングが構成されていないために返されるエラーメッセージ。 |