Use o recurso de hospedagem de site estático para hospedar seu site em um bucket do Object Storage Service (OSS) e acessá-lo pelo endpoint do bucket. Após configurar a hospedagem de site estático, defina regras de back-to-origin para garantir que os usuários obtenham os dados mesmo quando estes não existirem no OSS. Este tópico descreve como usar o comando website para adicionar, modifique, consultar ou exclua configurações de hospedagem de site estático e de back-to-origin de um bucket.
Observações de uso
Para adicionar ou modifique configurações de site em um bucket, você precisa da permissão
oss:PutBucketWebsite. Para consultar essas configurações, é necessária a permissãooss:GetBucketWebsite. Para excluí-las, você deve ter a permissãooss:DeleteBucketWebsite. Para mais informações, consulte Conceder uma política personalizada.No ossutil 1.6.16 e versões posteriores, use diretamente
ossutilcomo nome do binário na linha de comando, sem necessidade de alterá-lo conforme o sistema operacional. Em versões anteriores à 1.6.16, atualize o nome do binário de acordo com o sistema operacional. Para mais informações, consulte Guia de início rápido da ferramenta de linha de comando ossutil.-
Se a hospedagem de site estático estiver configurada em um bucket e os dados solicitados pelos usuários não existirem no OSS, o sistema retornará um erro 404. No entanto, se você configure regras de back-to-origin com uma origem válida para o bucket, os usuários poderão obter os dados conforme essas regras.
Para mais informações sobre hospedagem de site estático, consulte Visão geral.
Para mais detalhes sobre back-to-origin, consulte Visão geral da configuração de back-to-origin.
Adicionar ou modifique configurações de site de um bucket
Se um bucket não possuir configurações de site, o comando website adicionará novas configurações. Caso o bucket já tenha configurações desse tipo, as novas definições substituirão as existentes durante a execução do comando.
Para adicionar ou modifique configurações de site, siga estas etapas:
Crie um arquivo local e adicione as configurações de site a ele.
Adicione as configurações de site ao bucket de destino.
Sintaxe do comando e exemplos
-
Sintaxe do comando
ossutil website --method put oss://bucketname local_xml_fileA tabela a seguir descreve os parâmetros do comando anterior.
Parâmetro
Descrição
bucketname
Nome do bucket onde você deseja adicionar ou modifique as configurações de site.
local_xml_file
Nome do arquivo local usado para configure as regras de site. Exemplo:
localfile.xml. -
Exemplos
-
Crie um arquivo local chamado
localfile.xmle defina diferentes regras de site nele.O código de exemplo a seguir mostra como adicionar configurações completas de site a um bucket, incluindo hospedagem de site estático e regras de back-to-origin. Conforme sua necessidade, adicione apenas as configurações de hospedagem de site estático ou apenas as de back-to-origin.
-
Configurações de hospedagem de site estático
No exemplo a seguir, o campo <IndexDocument> define a página inicial padrão do site estático como
index.html. O campo <ErrorDocument> especifique a página 404 padrão do site estático comoerror.html. -
Configurações de back-to-origin
No exemplo a seguir, o campo <RoutingRules> define as regras de back-to-origin. Para mais informações sobre os parâmetros configuráveis nessas regras, consulte Visão geral.
<?xml version="1.0" encoding="UTF-8"?> <WebsiteConfiguration> <IndexDocument> <Suffix>index.html</Suffix> </IndexDocument> <ErrorDocument> <Key>error.html</Key> </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> <KeyPrefixEquals>abc/</KeyPrefixEquals> <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals> <IncludeHeader> <Key>host</Key> <Equals>test.oss-cn-beijing-internal.aliyuncs.com</Equals> </IncludeHeader> </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> -
-
Execute o comando a seguir para adicionar configurações de site ao bucket examplebucket:
ossutil website --method put oss://examplebucket localfile.xmlSe uma saída semelhante for exibida, as configurações de site foram adicionadas ao examplebucket:
0.299514(s) elapsed
-
Consultar configurações de site
-
Sintaxe do comando
ossutil website --method get oss://bucketname [local_xml_file]A tabela a seguir descreve os parâmetros do comando anterior.
Parâmetro
Descrição
bucketname
Nome do bucket cujas configurações de site você deseja consultar.
local_xml_file
Nome do arquivo local onde as configurações de site serão armazenadas. Exemplo:
localfile.xml. Se este parâmetro não for especificado, as configurações consultadas serão exibidas na tela. -
Exemplos
-
Execute o comando a seguir para consultar as configurações de site do bucket examplebucket e armazená-las no arquivo local
localfile.xml:ossutil website --method get oss://examplebucket localfile.xmlSe uma saída semelhante for exibida, as configurações de site do examplebucket foram consultadas e salvas em localfile.xml:
0.212407(s) elapsed -
Execute o comando a seguir para consultar as configurações de site do bucket examplebucket e exibi-las diretamente:
ossutil website --method get oss://examplebucketSe uma saída semelhante for exibida, as configurações de site do examplebucket foram consultadas:
<?xml version="1.0" encoding="UTF-8"?> <WebsiteConfiguration> <IndexDocument> <Suffix>index.html</Suffix> <SupportSubDir>false</SupportSubDir> <Type>0</Type> </IndexDocument> <ErrorDocument> <Key>error.html</Key> </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> <MirrorPassOriginalSlashes>false</MirrorPassOriginalSlashes> <MirrorFollowRedirect>true</MirrorFollowRedirect> <MirrorIsExpressTunnel>false</MirrorIsExpressTunnel> <MirrorUserLastModified>false</MirrorUserLastModified> <MirrorCheckMd5>false</MirrorCheckMd5> <MirrorSwitchAllErrors>false</MirrorSwitchAllErrors> <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> <MirrorUsingRole>false</MirrorUsingRole> <MirrorAllowHeadObject>false</MirrorAllowHeadObject> <EnableReplacePrefix>false</EnableReplacePrefix> </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> <EnableReplacePrefix>false</EnableReplacePrefix> <HttpRedirectCode>301</HttpRedirectCode> </Redirect> </RoutingRule> </RoutingRules> </WebsiteConfiguration> 0.157648(s) elapsed
-
Exclua configurações de site
-
Sintaxe do comando
ossutil website --method delete oss://bucketname -
Exemplos
Execute o comando a seguir para exclua as configurações de site do bucket examplebucket:
ossutil website --method delete oss://examplebucketSe uma saída semelhante for exibida, as configurações de site do bucket foram excluídas:
0.212409(s) elapsed
Opções comuns
Para acessar um bucket em outra região, use -e para especifique o endpoint. Para acessar um bucket pertencente a outra conta Alibaba Cloud, utilize -i para o AccessKey ID e -k para o AccessKey secret.
Por exemplo, execute o comando a seguir para adicionar configurações de site a um bucket chamado testbucket, localizado na região China (Hangzhou) e pertencente a outra conta Alibaba Cloud:
ossutil website --method put oss://testbucket localfile.xml -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret