Interroge le statut de l'hébergement de site statique et les règles de redirection configurés pour un bucket.
Remarque
L'autorisation oss:GetBucketWebsite est requise pour appeler l'opération GetBucketWebsite afin d'interroger le statut de l'hébergement de site statique et les règles de redirection configurés pour un bucket. Pour plus d'informations, consultez la rubrique Accorder une politique personnalisée.
Structure de la requête
GET /?website HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
En-têtes de requête
Une requête GetBucketWebsite contient uniquement des en-têtes de requête communs. Pour plus d'informations, consultez la rubrique En-têtes de requête communs.
En-têtes de réponse
La réponse à une requête GetBucketWebsite contient uniquement des en-têtes de réponse communs. Pour plus d'informations, consultez la rubrique En-têtes de réponse communs.
Éléments de réponse
-
Le tableau suivant décrit l'élément WebsiteConfiguration dans la réponse à une requête GetBucketWebsite.
Élément
Type
Exemple
Description
WebsiteConfiguration
Conteneur
S.O.
Nœud racine.
Nœuds parents : aucun
-
Le tableau suivant décrit les éléments IndexDocument dans la réponse à une requête GetBucketWebsite.
Élément
Type
Exemple
Description
IndexDocument
Conteneur
S.O.
Conteneur utilisé pour stocker la page d'accueil par défaut.
Nœuds parents : WebsiteConfiguration
Suffix
Chaîne
index.html
Page d'accueil par défaut.
Nœuds parents : IndexDocument
-
Le tableau suivant décrit les éléments ErrorDocument dans la réponse à une requête GetBucketWebsite.
Élément
Type
Exemple
Description
ErrorDocument
Conteneur
S.O.
Conteneur utilisé pour stocker la page d'erreur.
Nœuds parents : WebsiteConfiguration
Key
Chaîne
error.html
Page d'erreur.
Nœuds parents : ErrorDocument
HttpStatus
Chaîne
404
Code d'état HTTP renvoyé avec la page d'erreur.
Nœuds parents : ErrorDocument
-
Le tableau suivant décrit les éléments RoutingRules, RoutingRule et RuleNumber dans la réponse à une requête GetBucketWebsite.
Élément
Type
Exemple
Description
RoutingRules
Conteneur
S.O.
Conteneur utilisé pour stocker RoutingRule.
Nœuds parents : WebsiteConfiguration
RoutingRule
Conteneur
S.O.
Règle de redirection ou règle de retour à l'origine basée sur la mise en miroir.
Nœuds parents : RoutingRules
RuleNumber
Entier positif
1
Numéro de séquence utilisé pour faire correspondre et exécuter les règles de redirection ou les règles de retour à l'origine basées sur la mise en miroir.
Les règles de redirection sont mises en correspondance en fonction de cet élément. Si la correspondance réussit, seule la règle est exécutée et les règles suivantes ne le sont pas.
Nœuds parents : RoutingRule
-
Le tableau suivant décrit les éléments RoutingRules, RoutingRule et Condition dans la réponse à une requête GetBucketWebsite.
Élément
Type
Exemple
Description
Condition
Conteneur
S.O.
Condition de correspondance. La règle est exécutée uniquement lorsque toutes les conditions spécifiées sont remplies.
Nœuds parents : RoutingRule
KeyPrefixEquals
Chaîne
abc
Préfixe des noms d'objet. Seuls les objets dont les noms contiennent le préfixe spécifié correspondent à la règle.
Nœuds parents : Condition
HttpErrorCodeReturnedEquals
Code d'état HTTP
404
Code d'état HTTP renvoyé. La règle correspond uniquement lorsque l'objet spécifié est consulté et que le code d'état spécifié est renvoyé. Si la règle de redirection est la règle de retour à l'origine basée sur la mise en miroir, la valeur de cet élément est 404.
Nœuds parents : Condition
IncludeHeader
Conteneur
S.O.
En-tête spécifié dans la requête. La règle correspond uniquement lorsque l'en-tête spécifié est inclus dans la requête et que la valeur de l'en-tête est égale à la valeur spécifiée. Jusqu'à cinq conteneurs IncludeHeader peuvent être spécifiés.
Nœuds parents : IncludeHeader
Key
Chaîne
host
Clé de l'en-tête. La règle correspond uniquement lorsque l'en-tête spécifié est inclus dans la requête et que la valeur de l'en-tête est égale à la valeur spécifiée par Equals.
Nœuds parents : IncludeHeader
Equals
Chaîne
test.oss-cn-beijing-internal.aliyuncs.com
Valeur de l'en-tête. La règle correspond uniquement lorsque l'en-tête spécifié par Key est inclus dans la requête et que la valeur de l'en-tête est égale à la valeur spécifiée.
Nœuds parents : IncludeHeader
-
Le tableau suivant décrit les éléments RoutingRules, RoutingRule et Redirect dans la réponse à une requête GetBucketWebsite.
Élément
Type
Exemple
Description
Redirect
Conteneur
S.O.
Opération à effectuer après la correspondance de la règle.
Nœuds parents : RoutingRule
RedirectType
Chaîne
Mirror
Type de redirection.
-
Mirror : retour à l'origine basé sur la mise en miroir.
-
External : redirection externe. Object Storage Service (OSS) renvoie le code de redirection HTTP 3xx et l'en-tête Location pour vous permettre de rediriger l'accès vers une autre adresse IP.
-
AliCDN : redirection basée sur Alibaba Cloud Content Delivery Network (CDN). OSS ajoute un en-tête supplémentaire à la requête, ce qui diffère du type External. Après identification de l'en-tête par le CDN, celui-ci redirige l'accès vers l'adresse IP spécifiée et renvoie les données obtenues au lieu de la demande de redirection à l'utilisateur.
Nœuds parents : Redirect
PassQueryString
Booléen
false
Indique si les paramètres de requête de la requête d'origine sont inclus dans la requête de redirection lorsque le système exécute la règle de redirection ou la règle de retour à l'origine basée sur la mise en miroir.
Si le paramètre PassQueryString est défini sur true et que "?a=b&c=d" est inclus dans une requête envoyée à OSS, ce paramètre est ajouté à l'en-tête Location lorsque le mode de redirection est 302. Par exemple, si la requête contient "Location: www.example.com?a=b&c=d" et que la valeur de RedirectType est Mirror, le paramètre a=b&c=d est inclus dans la requête de retour à l'origine.
Valeur par défaut : false
Nœuds parents : Redirect
MirrorURL
Chaîne
http://example.com
URL d'origine pour le retour à l'origine basé sur la mise en miroir. Cet élément prend effet uniquement lorsque la valeur de RedirectType est Mirror.
L'URL d'origine doit commencer par http:// ou https:// et se terminer par une barre oblique (/). OSS ajoute un nom d'objet à la fin de l'URL pour générer une URL de retour à l'origine.
Par exemple, le nom de l'objet à consulter est myobject. Si MirrorURL est défini sur
http://example.com/, l'URL de retour à l'origine esthttp://example.com/myobject. Si MirrorURL est défini surhttp://example.com/dir1/, l'URL de retour à l'origine esthttp://example.com/dir1/myobject.Nœuds parents : Redirect
MirrorPassQueryString
Booléen
false
Cet élément joue le même rôle que PassQueryString et a une priorité plus élevée que PassQueryString. Il prend effet uniquement lorsque la valeur de RedirectType est Mirror.
Valeur par défaut : false
Nœuds parents : Redirect
MirrorFollowRedirect
Booléen
true
Indique si l'accès est redirigé vers l'adresse spécifiée par Location si l'origine renvoie un code d'état HTTP 3xx. Cet élément prend effet uniquement lorsque la valeur de RedirectType est Mirror.
Par exemple, lorsqu'une requête de retour à l'origine basée sur la mise en miroir est initiée, l'origine renvoie 302 et Location est spécifié.
-
true : OSS continue de demander l'adresse spécifiée par Location.
L'accès peut être redirigé jusqu'à 10 fois. Au-delà de 10 fois, un message d'erreur est renvoyé.
-
false : OSS renvoie 302 et transmet Location.
Valeur par défaut : true
Nœuds parents : Redirect
MirrorCheckMd5
Booléen
false
Indique si OSS vérifie le hachage MD5 du corps de la réponse renvoyée par l'origine. Cet élément prend effet uniquement lorsque la valeur de RedirectType est Mirror.
Lorsque la valeur de ce paramètre est true et que la réponse renvoyée par l'origine inclut l'en-tête Content-Md5, OSS vérifie si le hachage MD5 des données obtenues correspond à la valeur de l'en-tête. Si le hachage MD5 des données obtenues ne correspond pas à la valeur de l'en-tête, OSS ne stocke pas les données.
Valeur par défaut : false
Nœuds parents : Redirect
MirrorHeaders
Conteneur
S.O.
En-têtes inclus lorsqu'une règle de retour à l'origine basée sur la mise en miroir est spécifiée pour le bucket. Cet élément prend effet uniquement lorsque la valeur de RedirectType est Mirror.
Nœuds parents : Redirect
PassAll
Booléen
true
Indique si OSS transmet tous les en-têtes de requête à l'origine. Les en-têtes de requête excluent les en-têtes réservés et les en-têtes commençant par
oss-, x-oss- et x-drs-. Cet élément prend effet uniquement lorsque la valeur de RedirectType est Mirror.Valeur par défaut : false
Nœuds parents : MirrorHeaders
Pass
Chaîne
myheader-key1
En-tête à transmettre à l'origine. Cet élément prend effet uniquement lorsque la valeur de RedirectType est Mirror.
L'en-tête peut avoir une longueur maximale de 1 024 octets et ne peut contenir que des lettres, des chiffres et des traits d'union (-).
Vous pouvez spécifier jusqu'à 10 en-têtes Pass.
Nœuds parents : MirrorHeaders
Remove
Chaîne
myheader-key3
En-tête non autorisé à être transmis à l'origine. Jusqu'à 10 en-têtes Remove peuvent être spécifiés. Cet élément est utilisé conjointement avec PassAll. L'en-tête peut avoir une longueur maximale de 1 024 octets. Le jeu de caractères de ce paramètre est identique à celui de Pass. Cet élément prend effet uniquement lorsque la valeur de RedirectType est Mirror.
Nœuds parents : MirrorHeaders
Set
Conteneur
S.O.
Indique les en-têtes envoyés à l'origine. Les en-têtes spécifiés sont configurés dans les données renvoyées par l'origine, que les en-têtes soient contenus ou non dans la requête. Jusqu'à 10 conteneurs Set peuvent être spécifiés. Cet élément prend effet uniquement lorsque la valeur de RedirectType est Mirror.
Nœuds parents : MirrorHeaders
Key
Chaîne
myheader-key5
Clé de l'en-tête. La clé peut avoir une longueur maximale de 1 024 octets. Le jeu de caractères de ce paramètre est identique à celui de Pass. Cet élément prend effet uniquement lorsque la valeur de RedirectType est Mirror.
Nœuds parents : Set
Value
Chaîne
myheader-value5
Valeur de l'en-tête. La valeur peut avoir une longueur maximale de 1 024 octets et ne peut pas contenir "\r\n". Cet élément prend effet uniquement lorsque la valeur de RedirectType est Mirror.
Nœuds parents : Set
Protocol
Chaîne
http
Protocole utilisé pour rediriger l'accès. Cet élément prend effet uniquement lorsque la valeur de RedirectType est External ou AliCDN.
Par exemple, si vous accédez à un objet nommé test, Protocol est défini sur https et Hostname est défini sur
example.com, la valeur de l'en-tête Location esthttps://example.com/test.Valeurs valides : http et https.
Nœuds parents : Redirect
HostName
Chaîne
example.com
Nom de domaine utilisé pour la redirection, qui doit respecter les conventions de dénomination des noms de domaine. Cet élément prend effet uniquement lorsque la valeur de RedirectType est External ou AliCDN.
Par exemple, si vous accédez à l'objet nommé test, Protocol est défini sur https et Hostname est défini sur
example.com, l'en-tête Location esthttps://www.example.com/test.Nœuds parents : Redirect
HttpRedirectCode
Code d'état HTTP
301
Code de redirection HTTP dans la réponse. Cet élément prend effet uniquement lorsque la valeur de RedirectType est External ou AliCDN.
Valeurs valides : 301, 302 et 307
Nœuds parents : Redirect
ReplaceKeyPrefixWith
Chaîne
def/
Chaîne utilisée pour remplacer le préfixe du nom d'objet dans la requête de redirection. Cet élément prend effet uniquement lorsque la valeur de RedirectType est External ou AliCDN.
Par exemple, si vous accédez à un objet nommé
abc/test.txtet que ReplaceKeyPrefixWith est défini surdef/, la valeur de l'en-tête Location varie selon que la valeur de KeyPrefixEquals est vide ou non.-
Si la valeur de KeyPrefixEquals est définie sur
abc/, la valeur de l'en-tête Location esthttp://example.com/def/test.txt. -
Si KeyPrefixEquals est vide, la valeur de l'en-tête Location est
http://example.com/def/abc/test.txt.
Nœuds parents : Redirect
ReplaceKeyWith
Chaîne
prefix/${key}.suffix
Chaîne utilisée pour remplacer le nom d'objet dans la requête de redirection. Cet élément prend effet uniquement lorsque la valeur de RedirectType est External ou AliCDN.
Cet élément prend en charge la variable ${key}, qui indique le nom d'objet dans la requête. Par exemple, si vous accédez à un objet nommé test et que ReplaceKeyWith est défini sur
prefix/${key}.suffix, la valeur de l'en-tête Location esthttp://example.com/prefix/test.suffix.Nœuds parents : Redirect
-
Exemples
Exemples de requêtes
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****************
Exemples de réponses
-
Exemples de réponses lorsque les règles d'hébergement de site statique sont configurées
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> -
Exemple de réponse lorsque les règles d'hébergement de site statique ne sont pas configurées
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>
Exemple complet de réponse
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 OSS
Utilisez les SDK OSS pour les langages de programmation suivants afin d'appeler l'opération GetBucketWebsite :
ossutil
Pour obtenir des informations sur la commande ossutil correspondant à l'opération GetBucketWebsite, consultez la rubrique get-bucket-website.
Codes d'erreur
|
Code d'erreur |
Code d'état HTTP |
Description |
|
NoSuchBucket |
404 |
Le message d'erreur indique qu'aucun bucket de ce type n'a été trouvé. |
|
AccessDenied |
403 |
Le message d'erreur indique que vous n'êtes pas autorisé à effectuer cette opération. Seul le propriétaire du bucket peut interroger les configurations de statut d'hébergement de site statique d'un bucket. |
|
NoSuchWebsiteConfiguration |
404 |
Le message d'erreur indique que l'hébergement de site statique n'est pas configuré pour le bucket spécifié. |