La función de hosting de sitios web estáticos le permite alojar su sitio web en un bucket de Object Storage Service (OSS) y acceder a él mediante el endpoint del bucket. Si configura esta función para un bucket y los datos que los usuarios solicitan desde OSS no existen, puede establecer reglas de back-to-origin para garantizar que los usuarios obtengan la información de todos modos. En este tema se describe cómo ejecutar el comando website para agregar, modificar, consultar o eliminar configuraciones de hosting de sitios web estáticos y de back-to-origin de un bucket.
Notas de uso
Para agregar o modificar configuraciones relacionadas con sitios web en un bucket, debe contar con el permiso
oss:PutBucketWebsite. Para consultar estas configuraciones, necesita el permisooss:GetBucketWebsite. Para eliminarlas, requiere el permisooss:DeleteBucketWebsite. Para obtener más información, consulte Grant a custom policy.En ossutil 1.6.16 y versiones posteriores, puede usar directamente ossutil como nombre del binario en la línea de comandos. No es necesario actualizar el nombre del binario según el sistema operativo. En versiones anteriores a la 1.6.16, sí debe actualizarlo de acuerdo con el sistema operativo. Para obtener más información, consulte ossutil command reference.
-
Cuando se configura el hosting de sitios web estáticos para un bucket, se devuelve un error 404 si los datos solicitados por los usuarios desde OSS no existen. Sin embargo, si establece reglas de back-to-origin que contengan un origen válido para el bucket, los usuarios pueden obtener los datos conforme a dichas reglas.
Para obtener más información sobre el hosting de sitios web estáticos, consulte Overview.
Para obtener más información sobre back-to-origin, consulte 回源配置概述.
Agregar o modificar configuraciones de sitio web de un bucket
Si un bucket no tiene configuraciones de sitio web, al ejecutar el comando website se agregan nuevas configuraciones. Si ya cuenta con ellas, las nuevas configuraciones sobrescriben las existentes al ejecutar dicho comando.
Para agregar o modificar configuraciones de sitio web, siga estos pasos:
Cree un archivo local y agregue las configuraciones de sitio web en él.
Agregue las configuraciones de sitio web al bucket de destino.
Sintaxis del comando y ejemplos
-
Sintaxis del comando
ossutil website --method put oss://bucketname local_xml_fileA continuación se describen los parámetros del comando anterior.
Parámetro
Descripción
bucketname
Nombre del bucket al que desea agregar configuraciones de sitio web o cuyas configuraciones desea modificar.
local_xml_file
Nombre del archivo local que utilizará para configurar las reglas del sitio web. Por ejemplo:
localfile.xml. -
Ejemplos
-
Cree un archivo local llamado
localfile.xmly configure distintas reglas de sitio web en él.El siguiente código de ejemplo muestra cómo agregar configuraciones completas de sitio web a un bucket, lo cual incluye tanto el hosting de sitios web estáticos como las reglas de back-to-origin. Según sus necesidades reales, puede agregar únicamente las configuraciones de hosting de sitios web estáticos o solo las de back-to-origin.
-
Configuración de hosting de sitios web estáticos
En el siguiente ejemplo, el campo <IndexDocument> especifica que la página principal predeterminada del sitio web estático es
index.html. El campo <ErrorDocument> indica que la página 404 predeterminada del sitio web estático eserror.html. -
Configuración de back-to-origin
En el siguiente ejemplo, el campo <RoutingRules> define las reglas de back-to-origin. Para obtener más información sobre los parámetros que puede configurar en estas reglas, consulte Overview.
<?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> -
-
Ejecute el siguiente comando para agregar configuraciones de sitio web al bucket denominado examplebucket:
ossutil website --method put oss://examplebucket localfile.xmlSi se muestra una salida similar, las configuraciones de sitio web se agregaron correctamente a examplebucket:
0.299514(s) elapsed
-
Consultar configuraciones de sitio web
-
Sintaxis del comando
ossutil website --method get oss://bucketname [local_xml_file]A continuación se describen los parámetros del comando anterior.
Parámetro
Descripción
bucketname
Nombre del bucket cuyas configuraciones de sitio web desea consultar.
local_xml_file
Nombre del archivo local donde se almacenarán las configuraciones de sitio web. Por ejemplo:
localfile.xml. Si no especifica este parámetro, las configuraciones consultadas se muestran directamente. -
Ejemplos
-
Ejecute el siguiente comando para consultar las configuraciones de sitio web del bucket examplebucket y almacenarlas en el archivo local
localfile.xml:ossutil website --method get oss://examplebucket localfile.xmlSi se muestra una salida similar, las configuraciones de sitio web de examplebucket se consultaron y se guardaron en localfile.xml:
0.212407(s) elapsed -
Ejecute el siguiente comando para consultar las configuraciones de sitio web del bucket examplebucket e indicar que se muestren en pantalla:
ossutil website --method get oss://examplebucketSi se muestra una salida similar, las configuraciones de sitio web de examplebucket se consultaron correctamente:
<?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
-
Eliminar configuraciones de sitio web
-
Sintaxis del comando
ossutil website --method delete oss://bucketname -
Ejemplos
Ejecute el siguiente comando para eliminar las configuraciones de sitio web del bucket denominado examplebucket:
ossutil website --method delete oss://examplebucketSi se muestra una salida similar, las configuraciones de sitio web del bucket se eliminaron correctamente:
0.212409(s) elapsed
Opciones comunes
Para acceder a un bucket ubicado en otra región, use -e y especifique el endpoint correspondiente. Si necesita acceder a un bucket propiedad de otra cuenta de Alibaba Cloud, utilice -i para el AccessKey ID y -k para el AccessKey secret.
Por ejemplo, puede ejecutar el siguiente comando para agregar configuraciones de sitio web a un bucket llamado testbucket, ubicado en la región China (Hangzhou) y propiedad de otra cuenta de Alibaba Cloud:
ossutil website --method put oss://testbucket localfile.xml -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret