すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:put-bucket-website

最終更新日:Sep 24, 2024

静的Webサイトホスティングを有効にし、バケットのリダイレクションルールを設定します。

使用上の注意

  • デフォルトでは、Alibaba Cloudアカウントには、静的Webサイトホスティングを有効にし、バケットのリダイレクションルールを設定する権限があります。 静的Webサイトホスティングを有効にし、RAMユーザーまたはSecurity Token Service (STS) を使用してバケットのリダイレクションルールを設定するには、oss:PutBucketWebsite権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。

  • 静的Webサイトホスティングを有効にする前に、この機能に慣れていることを確認してください。 詳細については、「静的Webサイトホスティングの概要」をご参照ください。

コマンド構文

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

パラメーター

データ型

説明

-- bucket

String

バケットの名前です。

-- website-configuration

String

Webサイトのルートノード。

説明

put-bucket-websiteコマンドは、PutBucketWebsite操作に対応しています。 PutBucketWebsite操作のパラメーターの詳細については、「PutBucketWebsite」をご参照ください。

-- website-configuration

-- website-configurationオプションは、XML形式とJSON形式の両方をサポートします。 オプションの値にfile:// プレフィックスが含まれている場合、ossutilは構成ファイルから構成を読み取ります。

  • 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>
  • 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"
                  },
                  ...
                ]
              }
            }
          },
          ...
        ]
      }
    }
説明

サポートされているグローバルコマンドラインオプションの詳細については、「グローバルコマンドラインオプション」をご参照ください。

次の例は、静的Webサイトホスティングを有効にし、examplebucketという名前のバケットのリダイレクションルールを設定する方法を示しています。

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

サンプルコマンド:

ossutil api put-bucket-website --bucket examplebucket --website-configuration file://website-configuration.xml
  • 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"
        }
        }
        ]
        }
    }
    

    サンプルコマンド:

    ossutil api put-bucket-website --bucket examplebucket --website-configuration file://website-configuration.json
  • 次のコマンドでパラメーターをJSON形式で設定します。

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