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

Object Storage Service:website

最終更新日:May 06, 2024

静的Webサイトホスティング機能を使用して、静的WebサイトをObject Storage Service (OSS) バケットでホストし、バケットのエンドポイントを使用してWebサイトにアクセスできます。 バケットの静的Webサイトホスティングを設定した後、ユーザーがOSSから要求したデータが存在しない場合は、ユーザーがデータを取得できるようにback-to-originルールを設定できます。 このトピックでは、websiteコマンドを実行して、バケットの静的Webサイトホスティングおよびback-to-origin設定を追加、変更、クエリ、または削除する方法について説明します。

使用上の注意

  • バケットにWebサイト関連の設定を追加または変更するには、oss:PutBucketWebsite権限が必要です。 バケットのWebサイト関連の設定を照会するには、oss:GetBucketWebsite権限が必要です。 バケットのWebサイト関連の設定を削除するには、oss:DeleteBucketWebsite権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。

  • このトピックでは、64ビットLinuxシステムに基づくサンプルコマンドラインを提供します。 他のシステムのために、取り替えて下さい./ossutil64特定のバイナリ名を持つコマンドで 詳細は、「ossutilコマンドリファレンス」をご参照ください。

  • 静的Webサイトホスティングがバケットに設定された後、OSSからユーザーによって要求されたデータが存在しない場合、404エラーが返されます。 ただし、バケットの有効なオリジンを含むback-to-originルールを設定すると、ユーザーはルールに基づいてデータを取得できます。

    静的Webサイトホスティングの詳細については、「概要」をご参照ください。

    back-to-originの詳細については、「概要」をご参照ください。

バケットのウェブサイト関連の設定を追加または変更する

バケットにWebサイト関連の設定がない場合、Webサイトコマンドを実行すると、バケットに新しい設定が追加されます。 バケットに既にWebサイト関連の設定がある場合、Webサイトコマンドを実行すると、新しいWebサイト設定が既存の設定を上書きします。

Webサイト関連の設定を追加または変更するには、次の手順を実行します。

  1. ローカルファイルを作成し、Webサイト関連の設定をファイルに追加します。

  2. Webサイト関連の設定を宛先バケットに追加します。

コマンドの構文と例

  • コマンド構文

    ./ossutil64 website -- メソッドput oss:// bucketname local_xml_file

    次の表に、上記のコマンドのパラメーターを示します。

    パラメーター

    説明

    bucketname

    Webサイト関連の設定を追加するバケット、またはWebサイト関連の設定を変更するバケットの名前。

    local_xml_ファイル

    Webサイトのルールの設定に使用するローカルファイルの名前。 例: localfile.xml

    1. localfile.xmlという名前のローカルファイルを作成し、ファイル内にさまざまなWebサイトルールを設定します。

      次のサンプルコードは、静的Webサイトホスティング設定やback-to-origin設定など、完全なWebサイト関連の設定をバケットに追加する方法の例を示しています。 実際の要件に基づいて、静的Webサイトホスティング設定またはback-to-origin設定のみを追加できます。

      • 静的Webサイトホスティング設定

        次の例では、<IndexDocument> フィールドは、静的Webサイトのデフォルトのホームページがindex.htmlであることを指定します。 <ErrorDocument> フィールドは、静的Webサイトの既定の404ページがerror.htmlであることを指定します。

      • Back-to-originの設定

        次の例では、<RoutingRules> フィールドにback-to-originルールを指定します。 back-to-originルール用に設定できるパラメーターの詳細については、「概要」をご参照ください。

      <?xml version="1.0" encoding="UTF-8"?>
       <WebsiteConfiguration>
           <IndexDocument>
               <Suffix>index.html</Suffix>
           </IndexDocument>
           <ErrorDocument>
               <Key>error.html</Key>
           </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>
                     <HostNam e>example.com</HostName>
                     <PassQueryString>false</PassQueryString>
                     <ReplaceKeyWith>prefix/${key}.suffix</ReplaceKeyWith>
                     <HttpRedirectCode>301</HttpRedirectCode>
                   </Redirect>
               </RoutingRule>
           </RoutingRules>
       </WebsiteConfiguration> 
    2. 次のコマンドを実行して、examplebucketという名前のバケットにWebサイト関連の設定を追加します。

      ./ossutil64 website -- メソッドput oss:// examplebucket localfile.xml

      同様の出力が表示される場合、ウェブサイト関連の設定がexamplebucketに追加されます。

      0.299514経過

ウェブサイト関連の設定の照会

  • コマンド構文

    ./ossutil64 website -- メソッドget oss:// bucketname [local_xml_file]

    次の表に、上記のコマンドのパラメーターを示します。

    パラメーター

    説明

    bucketname

    Webサイト関連の設定を照会するバケットの名前。

    local_xml_ファイル

    Webサイト関連の設定が保存されているローカルファイルの名前。 例: localfile.xml このパラメーターが指定されていない場合、照会されたWebサイト関連の設定が表示されます。

    • 次のコマンドを実行して、examplebucketバケットのWebサイト関連の設定を照会し、その設定をlocalfile.xmlローカルファイルに保存します。

      ./ossutil64 website -- メソッドget oss:// examplebucket localfile.xml

      同様の出力が表示される場合、examplebucketのWebサイト関連の設定がクエリされ、localfile.xmlに保存されます。

      0.212407経過
    • 次のコマンドを実行して、examplebucketバケットのWebサイト関連の設定を照会し、設定が表示されるように指定します。

      ./ossutil64 Webサイト -- メソッドget oss:// examplebucket

      同様の出力が表示される場合、examplebucketのWebサイト関連の設定が照会されます。

      <?xml version="1.0" encoding="UTF-8"?>
      <WebsiteConfiguration>
        <IndexDocument>
          <Suffix>index.html</Suffix>
          <SupportSubDir>false</SupportSubDir>
          <タイプ> 0</タイプ>
        </IndexDocument>
        <ErrorDocument>
          <Key>error.html</Key>
        </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>
              <MirrorPassOriginalSlashes>false</MirrorPassOriginalSlashes>
              <MirrorFollowRedirect>true</MirrorFollowRedirect>
              <MirrorIsExpressTunnel>false</MirrorIsExpressTunnel>
              <MirrorUserLastModified>false</MirrorUserLastModified>
              <MirrorCheckMd5>false</MirrorCheckMd5>
              <MirrorSwitchAllErrors>false</MirrorSwitchAllErrors>
              <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>
              <MirrorUsingRole>false</MirrorUsingRole>
              <MirrorAllowHeadObject>false</MirrorAllowHeadObject>
              <EnableReplacePrefix>false</EnableReplacePrefix>
            </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>
              <HostNam e>example.com</HostName>
              <PassQueryString>false</PassQueryString>
              <ReplaceKeyWith>prefix/${key}.suffix</ReplaceKeyWith>
              <EnableReplacePrefix>false</EnableReplacePrefix>
              <HttpRedirectCode>301</HttpRedirectCode>
            </Redirect>
          </RoutingRule>
        </RoutingRules>
      </WebsiteConfiguration>
      
      0.157648経過 

ウェブサイト関連の設定を削除する

  • コマンド構文

    ./ossutil64 website -- メソッドdelete oss:// bucketname
  • 次のコマンドを実行して、examplebucketという名前のバケットのWebサイト関連の設定を削除します。

    ./ossutil64 website -- メソッドdelete oss:// examplebucket

    同様の出力が表示された場合、バケットのWebサイト関連の設定は削除されます。

    0.212409経過

一般的なオプション

ossutilを使用して別のリージョンにあるバケットに切り替える場合は、コマンドに -eオプションを追加して、指定したバケットがあるリージョンのエンドポイントを指定します。 ossutilを使用して別のAlibaba Cloudアカウントに属するバケットに切り替える場合、コマンドに -iオプションを追加して、指定されたアカウントのAccessKey IDを指定し、コマンドに -kオプションを追加して、指定されたアカウントのAccessKey secretを指定します。

たとえば、次のコマンドを実行して、中国 (杭州) リージョンにあり、別のAlibaba Cloudアカウントが所有するtestbucketという名前のバケットにWebサイト関連の設定を追加できます。

./ossutil64 Webサイト -- メソッドput oss:// testbucket localfile.xml -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA **** -k 67DLVBkH7EamOjy2W5RVAHUY9H ****

共通オプションの詳細については、「共通オプション」をご参照ください。