Consulta o status de hospedagem de site estático e as regras de redirecionamento configuradas para um bucket.
Note
A operação GetBucketWebsite requer a permissão oss:GetBucketWebsite para consultar o status de hospedagem de site estático e as regras de redirecionamento configuradas para um bucket. Para mais informações, consulte Grant a custom policy.
Estrutura da requisição
GET /?website HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
Cabeçalhos da requisição
Uma requisição GetBucketWebsite contém apenas cabeçalhos de requisição comuns. Para mais informações, consulte Common request headers.
Cabeçalhos da resposta
A resposta a uma requisição GetBucketWebsite contém apenas cabeçalhos de resposta comuns. Para mais informações, consulte Common response headers.
Elementos da resposta
-
A tabela a seguir descreve o elemento WebsiteConfiguration na resposta a uma requisição GetBucketWebsite.
Elemento
Tipo
Exemplo
Descrição
WebsiteConfiguration
Contêiner
N/A
O nó raiz.
Nós pai: nenhum
-
A tabela abaixo detalha os elementos de IndexDocument na resposta a uma requisição GetBucketWebsite.
Elemento
Tipo
Exemplo
Descrição
IndexDocument
Contêiner
N/A
O contêiner usado para armazenar a página inicial padrão.
Nós pai: WebsiteConfiguration
Suffix
String
index.html
A página inicial padrão.
Nós pai: IndexDocument
-
A tabela a seguir lista os elementos de ErrorDocument na resposta a uma requisição GetBucketWebsite.
Elemento
Tipo
Exemplo
Descrição
ErrorDocument
Contêiner
N/A
O contêiner usado para armazenar a página de erro.
Nós pai: WebsiteConfiguration
Key
String
error.html
A página de erro.
Nós pai: ErrorDocument
HttpStatus
String
404
O código de status HTTP retornado com a página de erro.
Nós pai: ErrorDocument
-
A tabela abaixo descreve os elementos RoutingRules, RoutingRule e RuleNumber na resposta a uma requisição GetBucketWebsite.
Elemento
Tipo
Exemplo
Descrição
RoutingRules
Contêiner
N/A
O contêiner usado para armazenar RoutingRule.
Nós pai: WebsiteConfiguration
RoutingRule
Contêiner
N/A
A regra de redirecionamento ou regra de back-to-origin por espelhamento.
Nós pai: RoutingRules
RuleNumber
Inteiro positivo
1
O número de sequência usado para avaliar e executar regras de redirecionamento ou de back-to-origin por espelhamento.
O OSS avalia as regras de redirecionamento com base neste elemento. Se houver correspondência, apenas a regra atual é executada, e as subsequentes são ignoradas.
Nós pai: RoutingRule
-
A tabela a seguir detalha os elementos RoutingRules, RoutingRule e Condition na resposta a uma requisição GetBucketWebsite.
Elemento
Tipo
Exemplo
Descrição
Condition
Contêiner
N/A
A condição de correspondência. A regra é executada apenas quando todas as condições especificadas são atendidas.
Nós pai: RoutingRule
KeyPrefixEquals
String
abc
O prefixo dos nomes dos objetos. A regra corresponde apenas a objetos cujos nomes contêm o prefixo especificado.
Nós pai: Condition
HttpErrorCodeReturnedEquals
Código de status HTTP
404
O código de status HTTP retornado. A regra corresponde apenas quando o objeto especificado é acessado e o código de status especificado é retornado. Se a regra de redirecionamento for de back-to-origin por espelhamento, o valor deste elemento será 404.
Nós pai: Condition
IncludeHeader
Contêiner
N/A
O cabeçalho especificado na requisição. A regra corresponde apenas quando a requisição inclui o cabeçalho especificado e seu valor é igual ao valor definido. Especifique até cinco contêineres IncludeHeader.
Nós pai: IncludeHeader
Key
String
host
A chave do cabeçalho. A regra corresponde apenas quando a requisição inclui o cabeçalho especificado e seu valor é igual ao valor definido por Equals.
Nós pai: IncludeHeader
Equals
String
test.oss-cn-beijing-internal.aliyuncs.com
O valor do cabeçalho. A regra corresponde apenas quando a requisição inclui o cabeçalho especificado por Key e seu valor é igual ao valor definido.
Nós pai: IncludeHeader
-
A tabela abaixo lista os elementos RoutingRules, RoutingRule e Redirect na resposta a uma requisição GetBucketWebsite.
Elemento
Tipo
Exemplo
Descrição
Redirect
Contêiner
N/A
A operação executada após a correspondência da regra.
Nós pai: RoutingRule
RedirectType
String
Mirror
O tipo de redirecionamento.
-
Mirror: back-to-origin por espelhamento.
-
External: redirecionamento externo. O Object Storage Service (OSS) retorna o código de redirecionamento HTTP 3xx e o cabeçalho Location para redirecionar o acesso a outro endereço IP.
-
AliCDN: redirecionamento baseado na alibaba cloud Content Delivery Network (CDN). O OSS adiciona um cabeçalho adicional à requisição, diferente do tipo External. Após identificar o cabeçalho, o CDN redireciona o acesso para o endereço IP especificado e retorna os dados obtidos ao usuário, em vez da requisição de redirecionamento.
Nós pai: Redirect
PassQueryString
Boolean
false
Indica se os parâmetros da requisição original são incluídos na requisição de redirecionamento quando o sistema executa a regra de redirecionamento ou a regra de back-to-origin por espelhamento.
Caso defina o parâmetro PassQueryString como true e a string "?a=b&c=d" estiver incluída em uma requisição enviada ao OSS, esse parâmetro será adicionado ao cabeçalho Location quando o modo de redirecionamento for 302. Por exemplo, se a requisição contiver "Location: www.example.com?a=b&c=d" e o valor de RedirectType for Mirror, o parâmetro a=b&c=d será incluído na requisição de back-to-origin.
Valor padrão: false
Nós pai: Redirect
MirrorURL
String
http://example.com
A URL de origem para back-to-origin por espelhamento. Este elemento entra em vigor apenas quando o valor de RedirectType é Mirror.
A URL de origem deve começar com http:// ou https:// e terminar com uma barra (/). O OSS adiciona o nome do objeto ao final da URL para gerar a URL de back-to-origin.
Por exemplo, se o nome do objeto a ser acessado for myobject e MirrorURL estiver definido como
http://example.com/, a URL de back-to-origin seráhttp://example.com/myobject. Se MirrorURL estiver definido comohttp://example.com/dir1/, a URL de back-to-origin seráhttp://example.com/dir1/myobject.Nós pai: Redirect
MirrorPassQueryString
Boolean
false
Este elemento desempenha a mesma função que PassQueryString e tem prioridade maior. Ele entra em vigor apenas quando o valor de RedirectType é Mirror.
Valor padrão: false
Nós pai: Redirect
MirrorFollowRedirect
Boolean
true
Indica se o acesso é redirecionado para o endereço especificado por Location caso a origem retorne um código de status HTTP 3xx. Este elemento entra em vigor apenas quando o valor de RedirectType é Mirror.
Por exemplo, quando uma requisição de back-to-origin por espelhamento é iniciada, a origem retorna 302 e especifica o Location.
-
true: O OSS continua a solicitar o endereço especificado por Location.
O acesso pode ser redirecionado até 10 vezes. Após isso, uma mensagem de erro é retornada.
-
false: O OSS retorna 302 e repassa o Location.
Valor padrão: true
Nós pai: Redirect
MirrorCheckMd5
Boolean
false
Indica se o OSS verifica o hash MD5 do corpo da resposta retornada pela origem. Este elemento entra em vigor apenas quando o valor de RedirectType é Mirror.
Quando o valor deste parâmetro é true e a resposta da origem inclui o cabeçalho Content-Md5, o OSS verifica se o hash MD5 dos dados obtidos corresponde ao valor do cabeçalho. Se não corresponder, o OSS não armazena os dados.
Valor padrão: false
Nós pai: Redirect
MirrorHeaders
Contêiner
N/A
Os cabeçalhos incluídos quando uma regra de back-to-origin por espelhamento é especificada para o bucket. Este elemento entra em vigor apenas quando o valor de RedirectType é Mirror.
Nós pai: Redirect
PassAll
Boolean
true
Indica se o OSS repassa todos os cabeçalhos da requisição para a origem, excluindo cabeçalhos reservados e aqueles que começam com
oss-, x-oss-, and x-drs-. Este elemento entra em vigor apenas quando o valor de RedirectType é Mirror.Valor padrão: false
Nós pai: MirrorHeaders
Pass
String
myheader-key1
O cabeçalho a ser repassado para a origem. Este elemento entra em vigor apenas quando o valor de RedirectType é Mirror.
O cabeçalho pode ter até 1.024 bytes e conter apenas letras, dígitos e hifens (-).
Especifique até 10 cabeçalhos Pass.
Nós pai: MirrorHeaders
Remove
String
myheader-key3
O cabeçalho que não deve ser repassado para a origem. Especifique até 10 cabeçalhos Remove. Este elemento é usado em conjunto com PassAll. O cabeçalho pode ter até 1.024 bytes e usar o mesmo conjunto de caracteres de Pass. Este elemento entra em vigor apenas quando o valor de RedirectType é Mirror.
Nós pai: MirrorHeaders
Set
Contêiner
N/A
Os cabeçalhos enviados para a origem. Os cabeçalhos especificados são configurados nos dados retornados pela origem, independentemente de estarem presentes na requisição. Especifique até 10 contêineres Set. Este elemento entra em vigor apenas quando o valor de RedirectType é Mirror.
Nós pai: MirrorHeaders
Key
String
myheader-key5
A chave do cabeçalho. Pode ter até 1.024 bytes e usar o mesmo conjunto de caracteres de Pass. Este elemento entra em vigor apenas quando o valor de RedirectType é Mirror.
Nós pai: Set
Value
String
myheader-value5
O valor do cabeçalho. Pode ter até 1.024 bytes e não pode conter "\r\n". Este elemento entra em vigor apenas quando o valor de RedirectType é Mirror.
Nós pai: Set
Protocol
String
http
O protocolo usado para redirecionar o acesso. Este elemento entra em vigor apenas quando o valor de RedirectType é External ou AliCDN.
Por exemplo, ao acessar um objeto chamado test, se Protocol estiver definido como https e Hostname como
example.com, o valor do cabeçalho Location seráhttps://example.com/test.Valores válidos: http e https.
Nós pai: Redirect
HostName
String
example.com
O nome de domínio usado para o redirecionamento, que deve seguir as convenções de nomenclatura de domínios. Este elemento entra em vigor apenas quando o valor de RedirectType é External ou AliCDN.
Por exemplo, ao acessar o objeto test, se Protocol estiver definido como https e Hostname como
example.com, o cabeçalho Location seráhttps://www.example.com/test.Nós pai: Redirect
HttpRedirectCode
Código de status HTTP
301
O código de redirecionamento HTTP na resposta. Este elemento entra em vigor apenas quando o valor de RedirectType é External ou AliCDN.
Valores válidos: 301, 302 e 307
Nós pai: Redirect
ReplaceKeyPrefixWith
String
def/
A string usada para substituir o prefixo do nome do objeto na requisição de redirecionamento. Este elemento entra em vigor apenas quando o valor de RedirectType é External ou AliCDN.
Por exemplo, ao acessar um objeto chamado
abc/test.txtcom ReplaceKeyPrefixWith definido comodef/, o valor do cabeçalho Location variará dependendo se KeyPrefixEquals está vazio.-
Se KeyPrefixEquals estiver definido como
abc/, o valor do cabeçalho Location seráhttp://example.com/def/test.txt. -
Se KeyPrefixEquals estiver vazio, o valor do cabeçalho Location será
http://example.com/def/abc/test.txt.
Nós pai: Redirect
ReplaceKeyWith
String
prefix/${key}.suffix
A string usada para substituir o nome do objeto na requisição de redirecionamento. Este elemento entra em vigor apenas quando o valor de RedirectType é External ou AliCDN.
Este elemento aceita a variável ${key}, que representa o nome do objeto na requisição. Por exemplo, ao acessar um objeto chamado test com ReplaceKeyWith definido como
prefix/${key}.suffix, o valor do cabeçalho Location seráhttp://example.com/prefix/test.suffix.Nós pai: Redirect
-
Exemplos
Exemplo de requisição
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****************
Exemplos de respostas
-
Exemplo de resposta com regras de hospedagem de site estático configuradas
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> -
Exemplo de resposta sem regras de hospedagem de site estático configuradas
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>The specified bucket does not have a website configuration.</Message> <BucketName>oss-example</BucketName> <RequestId>505191BEC4689A033D00236F</RequestId> <HostId>oss-example.oss-cn-hangzhou.aliyuncs.com</HostId> </Error>
Exemplo de resposta completa
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 SDKs
Use os SDKs do OSS nas seguintes linguagens de programação para chamar a operação GetBucketWebsite:
ossutil
Para obter informações sobre o comando do ossutil correspondente à operação GetBucketWebsite, consulte get-bucket-website.
Códigos de erro
|
Código de erro |
Código de status HTTP |
Descrição |
|
NoSuchBucket |
404 |
Erro retornado quando o bucket não é encontrado. |
|
AccessDenied |
403 |
Erro retornado quando você não tem autorização para executar esta operação. Apenas o proprietário do bucket pode consultar as configurações de status de hospedagem de site estático. |
|
NoSuchWebsiteConfiguration |
404 |
Erro retornado quando a hospedagem de site estático não está configurada para o bucket especificado. |