Todos os produtos
Search
Central de documentação

Object Storage Service:put-bucket-website

Última atualização: Jul 03, 2026

O comando put-bucket-website configura um bucket no modo de hospedagem de site estático e define regras de redirecionamento.

Considerações

  • Por padrão, uma conta Alibaba Cloud tem permissão para configurar o modo de hospedagem de site estático e as regras de redirecionamento de um bucket. Para executar essa operação com um usuário RAM ou via STS, você deve ter a permissão oss:PutBucketWebsite. Para mais detalhes, consulte Grant a custom policy.

  • Antes de configurar a hospedagem de site estático, familiarize-se com esse recurso. Consulte Static website hosting para obter mais informações.

Formato do comando

ossutil api put-bucket-website --bucket value --website-configuration value [flags]

Parâmetro

Tipo

Descrição

--bucket

string

Nome do bucket.

--website-configuration

string

Nó raiz da configuração do site.

Nota

O comando put-bucket-website corresponde à API PutBucketWebsite. Para entender o significado de cada parâmetro da API, consulte PutBucketWebsite.

--website-configuration

A opção --website-configuration aceita sintaxe XML e JSON. Se o valor contiver o prefixo file://, o sistema lerá a configuração de um arquivo.

  • Sintaxe 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>
  • Sintaxe 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"
                  },
                  ...
                ]
              }
            }
          },
          ...
        ]
      }
    }
Nota

Para consultar todas as opções globais de linha de comando compatíveis, consulte Global command-line options.

Exemplos de uso

Os exemplos a seguir demonstram como configurar o modo de hospedagem de site estático e definir regras de redirecionamento para um bucket chamado examplebucket.

  • Use um arquivo de configuração XML com o seguinte conteúdo em website-configuration.xml:

    <?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>

Execute o seguinte comando:

ossutil api put-bucket-website --bucket examplebucket --website-configuration file://website-configuration.xml
  • Use um arquivo de configuração JSON com o seguinte conteúdo em website-configuration.json:

    {
        "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"
        }
        }
        ]
        }
    }
    

    Execute o seguinte comando:

    ossutil api put-bucket-website --bucket examplebucket --website-configuration file://website-configuration.json
  • Para passar a configuração JSON diretamente como parâmetro, execute o comando abaixo:

    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\"}}]}}"