Consulta el estado de hosting de sitios web estáticos y las reglas de redirección configuradas para un bucket.
Nota
El permiso oss:GetBucketWebsite es obligatorio para llamar a la operación GetBucketWebsite. Esta operación consulta el estado de hosting de sitios web estáticos y las reglas de redirección configuradas para un bucket. Para obtener más información, consulte Grant a custom policy.
Estructura de la solicitud
GET /?website HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
Encabezados de la solicitud
Una solicitud de GetBucketWebsite solo contiene encabezados de solicitud comunes. Para obtener más información, consulte Common request headers.
Encabezados de la respuesta
La respuesta a una solicitud de GetBucketWebsite solo contiene encabezados de respuesta comunes. Para obtener más información, consulte Common response headers.
Elementos de la respuesta
-
A continuación se describe el elemento WebsiteConfiguration en la respuesta a una solicitud de GetBucketWebsite.
Elemento
Tipo
Ejemplo
Descripción
WebsiteConfiguration
Contenedor
N/A
Nodo raíz.
Nodos padre: ninguno
-
A continuación se describen los elementos de IndexDocument en la respuesta a una solicitud de GetBucketWebsite.
Elemento
Tipo
Ejemplo
Descripción
IndexDocument
Contenedor
N/A
Contenedor que almacena la página principal predeterminada.
Nodos padre: WebsiteConfiguration
Suffix
Cadena
index.html
Página principal predeterminada.
Nodos padre: IndexDocument
-
A continuación se describen los elementos de ErrorDocument en la respuesta a una solicitud de GetBucketWebsite.
Elemento
Tipo
Ejemplo
Descripción
ErrorDocument
Contenedor
N/A
Contenedor que almacena la página de error.
Nodos padre: WebsiteConfiguration
Key
Cadena
error.html
Página de error.
Nodos padre: ErrorDocument
HttpStatus
Cadena
404
Código de estado HTTP que se devuelve con la página de error.
Nodos padre: ErrorDocument
-
A continuación se describen los elementos RoutingRules, RoutingRule y RuleNumber en la respuesta a una solicitud de GetBucketWebsite.
Elemento
Tipo
Ejemplo
Descripción
RoutingRules
Contenedor
N/A
Contenedor que almacena RoutingRule.
Nodos padre: WebsiteConfiguration
RoutingRule
Contenedor
N/A
Regla de redirección o regla de retorno al origen basada en duplicación (mirroring).
Nodos padre: RoutingRules
RuleNumber
Entero positivo
1
Número de secuencia que se utiliza para coincidir y ejecutar las reglas de redirección o las reglas de retorno al origen basadas en duplicación.
Las reglas de redirección coinciden según este elemento. Si la coincidencia es exitosa, solo se ejecuta esa regla y no se ejecutan las siguientes.
Nodos padre: RoutingRule
-
A continuación se describen los elementos RoutingRules, RoutingRule y Condition en la respuesta a una solicitud de GetBucketWebsite.
Elemento
Tipo
Ejemplo
Descripción
Condition
Contenedor
N/A
Condición de coincidencia. La regla se ejecuta únicamente cuando se cumplen todas las condiciones especificadas.
Nodos padre: RoutingRule
KeyPrefixEquals
Cadena
abc
Prefijo de los nombres de objeto. Solo coinciden con la regla los objetos cuyo nombre contiene el prefijo especificado.
Nodos padre: Condition
HttpErrorCodeReturnedEquals
Código de estado HTTP
404
Código de estado HTTP devuelto. La regla coincide solo cuando se accede al objeto especificado y se devuelve el código de estado indicado. Si la regla de redirección es una regla de retorno al origen basada en duplicación, el valor de este elemento es 404.
Nodos padre: Condition
IncludeHeader
Contenedor
N/A
Encabezado especificado en la solicitud. La regla coincide solo cuando la solicitud incluye el encabezado indicado y su valor es igual al especificado. Se pueden indicar hasta cinco contenedores IncludeHeader.
Nodos padre: IncludeHeader
Key
Cadena
host
Clave del encabezado. La regla coincide solo cuando la solicitud incluye el encabezado indicado y su valor es igual al especificado por Equals.
Nodos padre: IncludeHeader
Equals
Cadena
test.oss-cn-beijing-internal.aliyuncs.com
Valor del encabezado. La regla coincide solo cuando la solicitud incluye el encabezado indicado por Key y su valor es igual al especificado.
Nodos padre: IncludeHeader
-
A continuación se describen los elementos RoutingRules, RoutingRule y Redirect en la respuesta a una solicitud de GetBucketWebsite.
Elemento
Tipo
Ejemplo
Descripción
Redirect
Contenedor
N/A
Operación que se ejecuta después de que la regla coincide.
Nodos padre: RoutingRule
RedirectType
Cadena
Mirror
Tipo de redirección.
-
Mirror: retorno al origen basado en duplicación.
-
External: redirección externa. Object Storage Service (OSS) devuelve el código de redirección HTTP 3xx y el encabezado Location para que usted redirija el acceso a otra dirección IP.
-
AliCDN: redirección basada en Alibaba Cloud Content Delivery Network (CDN). A diferencia del tipo External, OSS agrega un encabezado adicional a la solicitud. Cuando CDN identifica dicho encabezado, redirige el acceso a la dirección IP especificada y devuelve los datos obtenidos al usuario en lugar de la solicitud de redirección.
Nodos padre: Redirect
PassQueryString
Booleano
false
Indica si los parámetros de la solicitud original se incluyen en la solicitud de redirección cuando el sistema ejecuta la regla de redirección o la regla de retorno al origen basada en duplicación.
Si el parámetro PassQueryString se establece en true y una solicitud enviada a OSS incluye "?a=b&c=d", este parámetro se agrega al encabezado Location cuando el modo de redirección es 302. Por ejemplo, si la solicitud contiene "Location: www.example.com?a=b&c=d" y el valor de RedirectType es Mirror, el parámetro a=b&c=d se incluye en la solicitud de retorno al origen.
Valor predeterminado: false
Nodos padre: Redirect
MirrorURL
Cadena
http://example.com
URL de origen para el retorno al origen basado en duplicación. Este elemento surte efecto solo cuando el valor de RedirectType es Mirror.
La URL de origen debe comenzar con http:// o https:// y terminar con una barra diagonal (/). OSS agrega el nombre del objeto al final de la URL para generar la URL de retorno al origen.
Por ejemplo, suponga que el nombre del objeto al que se accede es myobject. Si MirrorURL se establece en
http://example.com/, la URL de retorno al origen eshttp://example.com/myobject. Si MirrorURL se establece enhttp://example.com/dir1/, la URL de retorno al origen eshttp://example.com/dir1/myobject.Nodos padre: Redirect
MirrorPassQueryString
Booleano
false
Este elemento cumple la misma función que PassQueryString, pero tiene mayor prioridad. Surte efecto solo cuando el valor de RedirectType es Mirror.
Valor predeterminado: false
Nodos padre: Redirect
MirrorFollowRedirect
Booleano
true
Indica si el acceso se redirige a la dirección especificada por Location cuando el origen devuelve un código de estado HTTP 3xx. Este elemento surte efecto solo cuando el valor de RedirectType es Mirror.
Por ejemplo, cuando se inicia una solicitud de retorno al origen basada en duplicación, el origen devuelve 302 y se especifica Location.
-
true: OSS continúa solicitando la dirección especificada por Location.
El acceso se puede redirigir hasta 10 veces. Después de 10 intentos, se devuelve un mensaje de error.
-
false: OSS devuelve 302 y pasa el valor de Location sin modificarlo.
Valor predeterminado: true
Nodos padre: Redirect
MirrorCheckMd5
Booleano
false
Indica si OSS comprueba el hash MD5 del cuerpo de la respuesta que devuelve el origen. Este elemento surte efecto solo cuando el valor de RedirectType es Mirror.
Cuando el valor de este parámetro es true y la respuesta del origen incluye el encabezado Content-Md5, OSS comprueba si el hash MD5 de los datos obtenidos coincide con el valor del encabezado. Si no coinciden, OSS no almacena los datos.
Valor predeterminado: false
Nodos padre: Redirect
MirrorHeaders
Contenedor
N/A
Encabezados que se incluyen cuando se configura una regla de retorno al origen basada en duplicación para el bucket. Este elemento surte efecto solo cuando el valor de RedirectType es Mirror.
Nodos padre: Redirect
PassAll
Booleano
true
Indica si OSS pasa todos los encabezados de la solicitud al origen. Estos encabezados excluyen los reservados y los que comienzan con
oss-, x-oss-, and x-drs-. Este elemento surte efecto solo cuando el valor de RedirectType es Mirror.Valor predeterminado: false
Nodos padre: MirrorHeaders
Pass
Cadena
myheader-key1
Encabezado que se pasa al origen. Este elemento surte efecto solo cuando el valor de RedirectType es Mirror.
El encabezado puede tener hasta 1024 bytes de longitud y contener únicamente letras, dígitos y guiones (-).
Se pueden especificar hasta 10 encabezados Pass.
Nodos padre: MirrorHeaders
Remove
Cadena
myheader-key3
Encabezado que no se permite pasar al origen. Se pueden especificar hasta 10 encabezados Remove. Este elemento se usa junto con PassAll. El encabezado puede tener hasta 1024 bytes de longitud y utiliza el mismo conjunto de caracteres que Pass. Surte efecto solo cuando el valor de RedirectType es Mirror.
Nodos padre: MirrorHeaders
Set
Contenedor
N/A
Indica los encabezados que se envían al origen. Los encabezados especificados se configuran en los datos que devuelve el origen, sin importar si la solicitud los incluía. Se pueden especificar hasta 10 contenedores Set. Este elemento surte efecto solo cuando el valor de RedirectType es Mirror.
Nodos padre: MirrorHeaders
Key
Cadena
myheader-key5
Clave del encabezado. Puede tener hasta 1024 bytes de longitud y utiliza el mismo conjunto de caracteres que Pass. Este elemento surte efecto solo cuando el valor de RedirectType es Mirror.
Nodos padre: Set
Value
Cadena
myheader-value5
Valor del encabezado. Puede tener hasta 1024 bytes de longitud y no puede contener "\r\n". Este elemento surte efecto solo cuando el valor de RedirectType es Mirror.
Nodos padre: Set
Protocol
Cadena
http
Protocolo que se utiliza para redirigir el acceso. Este elemento surte efecto solo cuando el valor de RedirectType es External o AliCDN.
Por ejemplo, si accede a un objeto llamado test, Protocol se establece en https y Hostname en
example.com, el valor del encabezado Location seráhttps://example.com/test.Valores válidos: http y https.
Nodos padre: Redirect
HostName
Cadena
example.com
Nombre de dominio que se utiliza para la redirección. Debe cumplir con las convenciones de nomenclatura de dominios. Este elemento surte efecto solo cuando el valor de RedirectType es External o AliCDN.
Por ejemplo, si accede al objeto llamado test, Protocol se establece en https y Hostname en
example.com, el encabezado Location seráhttps://www.example.com/test.Nodos padre: Redirect
HttpRedirectCode
Código de estado HTTP
301
Código de redirección HTTP en la respuesta. Este elemento surte efecto solo cuando el valor de RedirectType es External o AliCDN.
Valores válidos: 301, 302 y 307
Nodos padre: Redirect
ReplaceKeyPrefixWith
Cadena
def/
Cadena que se utiliza para reemplazar el prefijo del nombre de objeto en la solicitud de redirección. Este elemento surte efecto solo cuando el valor de RedirectType es External o AliCDN.
Por ejemplo, si accede a un objeto llamado
abc/test.txty ReplaceKeyPrefixWith se establece endef/, el valor del encabezado Location varía según si el valor de KeyPrefixEquals está vacío.-
Si el valor de KeyPrefixEquals se establece en
abc/, el valor del encabezado Location seráhttp://example.com/def/test.txt. -
Si KeyPrefixEquals está vacío, el valor del encabezado Location será
http://example.com/def/abc/test.txt.
Nodos padre: Redirect
ReplaceKeyWith
Cadena
prefix/${key}.suffix
Cadena que se utiliza para reemplazar el nombre del objeto en la solicitud de redirección. Este elemento surte efecto solo cuando el valor de RedirectType es External o AliCDN.
Este elemento admite la variable ${key}, que representa el nombre del objeto en la solicitud. Por ejemplo, si accede a un objeto llamado test y ReplaceKeyWith se establece en
prefix/${key}.suffix, el valor del encabezado Location seráhttp://example.com/prefix/test.suffix.Nodos padre: Redirect
-
Ejemplos
Ejemplos de solicitudes
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****************
Ejemplos de respuestas
-
Ejemplo de respuesta cuando se configuran reglas de hosting de sitios web estáticos
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> -
Ejemplo de respuesta cuando no se configuran reglas de hosting de sitios web estáticos
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>
Ejemplo de respuesta 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
SDK de OSS
Puede usar los SDK de OSS de los siguientes lenguajes de programación para llamar a la operación GetBucketWebsite:
ossutil
Para obtener información sobre el comando de ossutil correspondiente a la operación GetBucketWebsite, consulte get-bucket-website.
Códigos de error
|
Código de error |
Código de estado HTTP |
Descripción |
|
NoSuchBucket |
404 |
Mensaje de error que se devuelve porque no se encuentra el bucket. |
|
AccessDenied |
403 |
Mensaje de error que se devuelve porque no tiene autorización para ejecutar esta operación. Solo el propietario del bucket puede consultar la configuración de hosting de sitios web estáticos de un bucket. |
|
NoSuchWebsiteConfiguration |
404 |
Mensaje de error que se devuelve porque no se configuró el hosting de sitios web estáticos para el bucket especificado. |