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

Object Storage Service:website

最終更新日:Dec 23, 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ユーザーへのカスタムポリシーのアタッチ」をご参照ください。

  • ossutil 1.6.16以降の場合、コマンドラインでossutilをバイナリ名として直接使用できます。 オペレーティングシステムに基づいてバイナリ名を更新する必要はありません。 1.6.16より前のossutilの場合、オペレーティングシステムに基づいてバイナリ名を更新する必要があります。 詳細は、「ossutilコマンドリファレンス」をご参照ください。

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

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

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

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

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

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

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

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

コマンドの構文と例

  • コマンド構文

    ossutil website --method 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>
                     <HostName>example.com</HostName>
                     <PassQueryString>false</PassQueryString>
                     <ReplaceKeyWith>prefix/${key}.suffix</ReplaceKeyWith>
                     <HttpRedirectCode>301</HttpRedirectCode>
                   </Redirect>
               </RoutingRule>
           </RoutingRules>
       </WebsiteConfiguration>
    2. 次のコマンドを実行して、examplebucketという名前のバケットにWebサイト関連の設定を追加します。

      ossutil website --method put oss://examplebucket localfile.xml

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

      0.299514(s) elapsed

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

  • コマンド構文

    ossutil website --method get oss://bucketname [local_xml_file]

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

    パラメーター

    説明

    bucketname

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

    local_xml_ファイル

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

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

      ossutil website --method get oss://examplebucket localfile.xml

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

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

      ossutil website --method get oss://examplebucket

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

      <?xml version="1.0" encoding="UTF-8"?>
      <WebsiteConfiguration>
        <IndexDocument>
          <Suffix>index.html</Suffix>
          <SupportSubDir>false</SupportSubDir>
          <Type>0</Type>
        </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>
              <HostName>example.com</HostName>
              <PassQueryString>false</PassQueryString>
              <ReplaceKeyWith>prefix/${key}.suffix</ReplaceKeyWith>
              <EnableReplacePrefix>false</EnableReplacePrefix>
              <HttpRedirectCode>301</HttpRedirectCode>
            </Redirect>
          </RoutingRule>
        </RoutingRules>
      </WebsiteConfiguration>
      
      0.157648(s) elapsed

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

  • コマンド構文

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

    ossutil website --method delete oss://examplebucket

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

    0.212409(s) elapsed

一般的なオプション

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

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

ossutil website --method put oss://testbucket localfile.xml -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA****  -k 67DLVBkH7EamOjy2W5RVAHUY9H****

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