La commande put-bucket-website configure un bucket (espace de stockage) en mode hébergement de site web statique et définit les règles de redirection.
Remarques importantes
Par défaut, un compte Alibaba Cloud dispose des autorisations nécessaires pour activer l'hébergement de site web statique et configurer les règles de redirection sur un bucket. Pour effectuer cette opération via un utilisateur RAM ou le service STS, vous devez disposer de l'autorisation
oss:PutBucketWebsite. Pour plus d'informations, consultez la rubrique Grant a custom policy.Avant de configurer l'hébergement de site web statique, assurez-vous de bien comprendre le fonctionnement de cette fonctionnalité. Pour en savoir plus, reportez-vous à la documentation Static website hosting.
Format de la commande
ossutil api put-bucket-website --bucket value --website-configuration value [flags]
|
Paramètre |
Type |
Description |
|
--bucket |
string |
Nom du bucket. |
|
--website-configuration |
string |
Nœud racine de la configuration du site web. |
La commande put-bucket-website correspond à l'API PutBucketWebsite. Pour connaître la signification détaillée des paramètres de l'API, consultez la documentation PutBucketWebsite.
--website-configuration
L'option de configuration --website-configuration prend en charge les syntaxes XML et JSON. Si la valeur de l'option commence par le préfixe file://, la configuration est lue depuis un fichier.
-
Syntaxe XML :
<WebsiteConfiguration> <IndexDocument> <Suffix>string</Suffix> <SupportSubDir>boolean</SupportSubDir> <Type>string</Type> </IndexDocument> <ErrorDocument> <Key>string</Key> <HttpStatus>string</HttpStatus> </ErrorDocument> <RoutingRules> <RoutingRule> <RuleNumber>integer</RuleNumber> <Condition> <KeyPrefixEquals>string</KeyPrefixEquals> <HttpErrorCodeReturnedEquals>integer</HttpErrorCodeReturnedEquals> </Condition> <Redirect> <HttpRedirectCode>integer</HttpRedirectCode> <RedirectType>string</RedirectType> <MirrorPassQueryString>boolean</MirrorPassQueryString> <MirrorFollowRedirect>boolean</MirrorFollowRedirect> <MirrorHeaders> <PassAll>boolean</PassAll> <Pass>string</Pass> ... <Remove>string</Remove> ... <Set> <Value>string</Value> <Key>string</Key> </Set> ... </MirrorHeaders> <MirrorURL>string</MirrorURL> <EnableReplacePrefix>boolean</EnableReplacePrefix> <ReplaceKeyWith>string</ReplaceKeyWith> <PassQueryString>boolean</PassQueryString> <MirrorCheckMd5>boolean</MirrorCheckMd5> <Protocol>string</Protocol> <HostName>string</HostName> <TransparentMirrorResponseCodes>string</TransparentMirrorResponseCodes> <ReplaceKeyPrefixWith>string</ReplaceKeyPrefixWith> </Redirect> </RoutingRule> ... </RoutingRules> </WebsiteConfiguration> -
Syntaxe JSON :
{ "IndexDocument": { "Type": "string", "Suffix": "string", "SupportSubDir": boolean }, "ErrorDocument": { "Key": "string", "HttpStatus": "string" }, "RoutingRules": { "RoutingRule": [ { "RuleNumber": integer, "Condition": { "HttpErrorCodeReturnedEquals": integer, "KeyPrefixEquals": "string" }, "Redirect": { "MirrorURL": "string", "EnableReplacePrefix": boolean, "ReplaceKeyWith": "string", "PassQueryString": boolean, "MirrorCheckMd5": boolean, "Protocol": "string", "HostName": "string", "TransparentMirrorResponseCodes": "string", "ReplaceKeyPrefixWith": "string", "HttpRedirectCode": integer, "RedirectType": "string", "MirrorPassQueryString": boolean, "MirrorFollowRedirect": boolean, "MirrorHeaders": { "PassAll": boolean, "Pass": ["string", ...], "Remove": ["string", ...], "Set": [ { "Key": "string", "Value": "string" }, ... ] } } }, ... ] } }
Pour obtenir la liste des options de ligne de commande globales prises en charge, consultez la rubrique Global command-line options.
Exemples d'utilisation
Les exemples suivants illustrent la configuration du mode hébergement de site web statique et la définition des règles de redirection pour un bucket nommé examplebucket.
-
Utilisation d'un fichier de configuration XML. Le contenu du fichier
website-configuration.xmlest le suivant :<?xml version="1.0" encoding="UTF-8"?> <WebsiteConfiguration> <IndexDocument> <Suffix>index.html</Suffix> <SupportSubDir>true</SupportSubDir> <Type>0</Type> </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> <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> <RoutingRule> <Condition> <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals> </Condition> <RuleNumber>3</RuleNumber> <Redirect> <ReplaceKeyWith>prefix/${key}</ReplaceKeyWith> <HttpRedirectCode>302</HttpRedirectCode> <EnableReplacePrefix>false</EnableReplacePrefix> <PassQueryString>false</PassQueryString> <Protocol>http</Protocol> <HostName>example.com</HostName> <RedirectType>External</RedirectType> </Redirect> </RoutingRule> </RoutingRules> </WebsiteConfiguration>
Exemple de commande :
ossutil api put-bucket-website --bucket examplebucket --website-configuration file://website-configuration.xml
-
Utilisation d'un fichier de configuration JSON. Le contenu du fichier
website-configuration.jsonest le suivant :{ "IndexDocument": { "Suffix": "index.html", "SupportSubDir": "true", "Type": "0" }, "ErrorDocument": { "Key": "error.html", "HttpStatus": "404" }, "RoutingRules": { "RoutingRule": [ { "RuleNumber": "1", "Condition": { "KeyPrefixEquals": "abc/", "HttpErrorCodeReturnedEquals": "404" }, "Redirect": { "RedirectType": "Mirror", "PassQueryString": "true", "MirrorURL": "http://example.com/", "MirrorPassQueryString": "true", "MirrorFollowRedirect": "true", "MirrorCheckMd5": "false", "MirrorHeaders": { "PassAll": "true", "Pass": [ "myheader-key1", "myheader-key2" ], "Remove": [ "myheader-key3", "myheader-key4" ], "Set": { "Key": "myheader-key5", "Value": "myheader-value5" } } } }, { "RuleNumber": "2", "Condition": { "KeyPrefixEquals": "abc/", "HttpErrorCodeReturnedEquals": "404", "IncludeHeader": { "Key": "host", "Equals": "test.oss-cn-beijing-internal.aliyuncs.com" } }, "Redirect": { "RedirectType": "AliCDN", "Protocol": "http", "HostName": "example.com", "PassQueryString": "false", "ReplaceKeyWith": "prefix/${key}.suffix", "HttpRedirectCode": "301" } }, { "Condition": { "HttpErrorCodeReturnedEquals": "404" }, "RuleNumber": "3", "Redirect": { "ReplaceKeyWith": "prefix/${key}", "HttpRedirectCode": "302", "EnableReplacePrefix": "false", "PassQueryString": "false", "Protocol": "http", "HostName": "example.com", "RedirectType": "External" } } ] } }Exemple de commande :
ossutil api put-bucket-website --bucket examplebucket --website-configuration file://website-configuration.json -
Utilisation directe des paramètres de configuration JSON dans la commande. Exemple :
ossutil api put-bucket-website --bucket examplebucket --website-configuration "{\"IndexDocument\":{\"Suffix\":\"index.html\",\"SupportSubDir\":\"true\",\"Type\":\"0\"},\"ErrorDocument\":{\"Key\":\"error.html\",\"HttpStatus\":\"404\"},\"RoutingRules\":{\"RoutingRule\":[{\"RuleNumber\":\"1\",\"Condition\":{\"KeyPrefixEquals\":\"abc/\",\"HttpErrorCodeReturnedEquals\":\"404\"},\"Redirect\":{\"RedirectType\":\"Mirror\",\"PassQueryString\":\"true\",\"MirrorURL\":\"http://example.com/\",\"MirrorPassQueryString\":\"true\",\"MirrorFollowRedirect\":\"true\",\"MirrorCheckMd5\":\"false\",\"MirrorHeaders\":{\"PassAll\":\"true\",\"Pass\":[\"myheader-key1\",\"myheader-key2\"],\"Remove\":[\"myheader-key3\",\"myheader-key4\"],\"Set\":{\"Key\":\"myheader-key5\",\"Value\":\"myheader-value5\"}}}},{\"RuleNumber\":\"2\",\"Condition\":{\"KeyPrefixEquals\":\"abc/\",\"HttpErrorCodeReturnedEquals\":\"404\",\"IncludeHeader\":{\"Key\":\"host\",\"Equals\":\"test.oss-cn-beijing-internal.aliyuncs.com\"}},\"Redirect\":{\"RedirectType\":\"AliCDN\",\"Protocol\":\"http\",\"HostName\":\"example.com\",\"PassQueryString\":\"false\",\"ReplaceKeyWith\":\"prefix/${key}.suffix\",\"HttpRedirectCode\":\"301\"}},{\"Condition\":{\"HttpErrorCodeReturnedEquals\":\"404\"},\"RuleNumber\":\"3\",\"Redirect\":{\"ReplaceKeyWith\":\"prefix/${key}\",\"HttpRedirectCode\":\"302\",\"EnableReplacePrefix\":\"false\",\"PassQueryString\":\"false\",\"Protocol\":\"http\",\"HostName\":\"example.com\",\"RedirectType\":\"External\"}}]}}"