Configuração da hospedagem de site estático para um bucket
Funções
O OBS permite armazenar recursos estáticos de páginas da Web, como páginas da Web HTML, arquivos flash, vídeos e áudios em um bucket. Quando um cliente acessa esses recursos a partir do endpoint do site do bucket, o navegador pode resolver diretamente e apresentar os recursos ao cliente. Esta operação é aplicável a:
- Redirecionamento de todas as solicitações para um endpoint do site.
- Adicionamento das regras de roteamento que redirecionam solicitações específicas.
Você pode executar essa operação para criar ou atualizar a configuração do site de um bucket.
Para executar essa operação, você deve ter a permissão PutBucketWebsite. Por padrão, somente o proprietário do bucket pode executar essa operação. O proprietário do bucket pode conceder a permissão a outros usuários configurando a política do bucket ou a política do usuário.
Evite usar períodos(.) no nome do bucket de destino. Caso contrário, falhas no certificado de autenticação do cliente podem ocorrer quando os usuários usam HTTPS para acesso.
O tamanho máximo de uma solicitação de configuração de rede para um bucket é de 10 KB.
Sintaxe da solicitação
1 2 3 4 5 6 7 8 9 10 |
PUT /?website HTTP/1.1 Host: bucketname.obs.region.myhuaweicloud.com Content-Length: length Date: date Authorization: authorization <WebsiteConfiguration> <RedirectAllRequestsTo> <HostName>hostName</HostName> </RedirectAllRequestsTo> </WebsiteConfiguration> |
Parâmetros de solicitação
Esta solicitação não contém nenhum parâmetro.
Cabeçalhos de solicitação
Essa solicitação usa cabeçalhos comuns. Para mais detalhes, consulte Tabela 3.
Elementos de solicitação
Esta solicitação contém elementos para especificar a configuração do site no formato XML.
- Para redirecionar todas as solicitações de site enviadas para o endpoint do site do bucket, adicione os elementos conforme descrito em Tabela 1.
Tabela 1 Elementos para redirecionar todas as solicitações do site Elemento
Descrição
Obrigatório
WebsiteConfiguration
Nó raiz configurado no site
Tipo: elemento
Antepassado: nenhum
Sim
RedirectAllRequestsTo
Descreve o comportamento de redirecionamento de cada solicitação para o endpoint do site desse bucket. Se este elemento estiver presente, não são permitidos outros irmãos.
Tipo: element
Antepassado: WebsiteConfiguration
Sim
HostName
Nome do host para onde as solicitações serão redirecionadas
Tipo: string
Antepassado: RedirectAllRequestsTo
Sim
Protocol
O protocolo HTTP ou HTTPS usado no redirecionamento de solicitações. O protocolo padrão é HTTP.
Tipo: string
Antepassado: RedirectAllRequestsTo
Não
- Para configurar regras de redirecionamento, adicione os elementos conforme descrito em Tabela 2.
Tabela 2 Elementos para adicionar regras que redirecionam solicitações Elemento
Descrição
Obrigatório
WebsiteConfiguration
Elemento raiz para a configuração do site
Tipo: elemento
Antepassado: nenhum
Sim
IndexDocument
Elemento Suff
Tipo: elemento
Antepassado: WebsiteConfiguration
Sim
Suffix
Suffix que é anexado a uma solicitação iniciada para um diretório no ponto de extremidade do site. Por exemplo, se o suffix for index.html e você solicitar samplebucket/images/, os dados retornados serão para o objeto com o nome da chave images/index.html no bucket samplebucket. Suffix não pode estar vazio ou conter barras (/).
Tipo: string
Antepassado: IndexDocument
Sim
ErrorDocument
Elemento Key
Tipo: elemento
Antepassado: WebsiteConfiguration
Não
Key
Chave de objeto que é usada quando ocorre um erro 4XX. Este elemento identifica a página que é retornada quando ocorre um erro 4XX.
Tipo: string
Antepassado: ErrorDocument
Condição: Necessário quando ErrorDocument é especificado.
Não
RoutingRules
Elemento Routing
Tipo: elemento
Antepassado: WebsiteConfiguration
Não
RoutingRule
Elemento de uma regra de redirecionamento. Uma regra de redirecionamento contém uma Condition e um Redirect. Quando a Condition é correspondida, Redirect entra em vigor.
Tipo: elemento
Antepassado: RoutingRules
Pelo menos o elemento RoutingRule é necessário.
Sim
Condition
Elemento para descrever uma condição que deve ser atendida para que o redirecionamento especificado seja aplicado.
Tipo: elemento
Antepassado: RoutingRule
Não
KeyPrefixEquals
Prefixo do nome da chave de objeto quando o redirecionamento é aplicado.
Exemplo:
- Para redirecionar a solicitação para o objeto ExamplePage.html, o KeyPrefixEquals é definido como ExamplePage.html.
Tipo: string
Antepassado: Condição
Condição: Necessário quando o elemento ancestral Condition é especificado e o irmão HttpErrorCodeReturnedEquals não é especificado. Se duas condições forem especificadas, ambas devem ser verdadeiras para que o Redirect seja aplicado.
Não
HttpErrorCodeReturnedEquals
Código de erro HTTP retornado após o Redirecionamento ter entrado em vigor. O Redirecionamento especificado é aplicado somente quando o código de erro retornado é igual a esse valor.
Exemplo:
- Se você quiser redirecionar solicitações para NotFound.html quando o código de erro HTTP 404 for retornado, defina HttpErrorCodeReturnedEquals como 404 em Condition e defina ReplaceKeyWith como NotFound.html em Redirect.
Tipo: string
Antepassado: Condição
Condição: Obrigatório quando o elemento ancestral Condition é especificado e o irmão KeyPrefixEquals não é especificado. Se várias condições forem especificadas, o Redirect terá efeito somente depois que todas as condições forem atendidas.
Não
Redirect
Elemento para informações de redirecionamento. Você pode redirecionar solicitações para outro host, para outra página da Web ou com outro protocolo. Você pode especificar um código de erro a ser retornado após um erro.
Tipo: elemento
Antepassado: RoutingRule
Sim
Protocol
Protocolo usado na solicitação de redirecionamento
Tipo: string
Antepassado: Redirecionamento
Opções de valor: http, https
Condição: Não é necessário se um dos irmãos estiver presente.
Não
HostName
Nome do host usado na solicitação de redirecionamento.
Tipo: string
Antepassado: Redirecionamento
Condição: Não é necessário se um dos irmãos estiver presente.
Não
ReplaceKeyPrefixWith
Prefixo da chave de objeto usado na solicitação de redirecionamento.
Exemplo:
- Para redirecionar todas as solicitações de documentos para documentos, defina KeyPrefixEquals para docs em Condition e ReplaceKeyPrefixWith para documentos em Redirect.
Tipo: string
Antepassado: Redirect
Condição: Não é necessário se um dos irmãos estiver presente. Pode estar presente apenas se o ReplaceKeyWith não for fornecido.
Não
ReplaceKeyWith
Chave de objeto usada na solicitação de redirecionamento. Por exemplo, redirecione solicitações para error.html.
Tipo: string
Antepassado: Redirecionamento
Condição: Não é necessário se um dos irmãos estiver presente. Pode estar presente apenas se ReplaceKeyPrefixWith não for fornecido.
Não
HttpRedirectCode
Código de status HTTP retornado após a solicitação de redirecionamento
Tipo: string
Antepassado: Redirecionamento
Condição: Não é necessário se um dos irmãos estiver presente.
Não
Sintaxe da resposta
1 2 3 |
HTTP/1.1 status_code Date: date Content-Length: length |
Cabeçalhos de resposta
A resposta à solicitação usa cabeçalhos comuns. Para mais detalhes, consulte Tabela 1.
Elementos de resposta
Esta resposta não contém nenhum elemento.
Respostas de erro
Nenhuma resposta de erro especial é retornada. Para obter detalhes sobre respostas de erro, consulte Tabela 2.
Solicitação de exemplo
1 2 3 4 5 6 7 8 9 10 11 12 13 |
PUT /?website HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 03:40:29 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:pUK7Yp0yebnq4P6gqzVjoS7whoM= Content-Length: 194 <WebsiteConfiguration xmlns="http://obs.ap-southeast-1.myhuaweicloud.com/doc/2015-06-30/"> <RedirectAllRequestsTo> <HostName>www.huaweicloud.com</HostName> </RedirectAllRequestsTo> </WebsiteConfiguration> |
Resposta de exemplo
1 2 3 4 5 6 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF2600000164360D144670B9D02AABC6 x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSItqMZ/AoFUX97l1xx8s67V3cCQtXWk Date: WED, 01 Jul 2015 03:40:29 GMT Content-Length: 0 |