静的 Web サイトホスティング機能を使用すると、Object Storage Service (OSS) バケットで静的 Web サイトをホストし、バケットのエンドポイントを使用して Web サイトにアクセスできます。バケットに静的 Web サイトホスティングを構成した後、ユーザーが OSS からリクエストしたデータが存在しない場合、原点復帰ルールを構成して、ユーザーが引き続きデータを取得できるようにすることができます。このトピックでは、website コマンドを実行して、バケットの静的 Web サイトホスティングと原点復帰構成を追加、変更、クエリ、または削除する方法について説明します。
使用上の注意
バケットに Web サイト関連の構成を追加または変更するには、
oss:PutBucketWebsite権限が必要です。バケットの Web サイト関連の構成をクエリするには、oss:GetBucketWebsite権限が必要です。バケットの Web サイト関連の構成を削除するには、oss:DeleteBucketWebsite権限が必要です。詳細については、「RAM ユーザーにカスタムポリシーをアタッチする」をご参照ください。ossutil 1.6.16 以降では、コマンドラインでバイナリ名として ossutil を直接使用できます。オペレーティングシステムに基づいてバイナリ名を更新する必要はありません。 ossutil 1.6.16 より前のバージョンでは、オペレーティングシステムに基づいてバイナリ名を更新する必要があります。詳細については、「ossutil コマンドリファレンス」をご参照ください。
バケットに静的 Web サイトホスティングが構成されている場合、ユーザーが OSS からリクエストしたデータが存在しないと、404 エラーが返されます。ただし、バケットに対して有効なオリジンを含む原点復帰ルールを構成すると、ユーザーはルールに基づいてデータを取得できます。
静的 Web サイトホスティングの詳細については、「概要」をご参照ください。
原点復帰の詳細については、「原点復帰」をご参照ください。
バケットに Web サイト関連の構成を追加または変更する
バケットに Web サイト関連の構成がない場合、website コマンドを実行すると、バケットに新しい構成が追加されます。バケットに既に Web サイト関連の構成がある場合、website コマンドを実行すると、新しい Web サイト構成によって既存の構成が上書きされます。
Web サイト関連の構成を追加または変更するには、次の手順を実行します。
ローカルファイルを作成し、Web サイト関連の構成をファイルに追加します。
Web サイト関連の構成をデスティネーションバケットに追加します。
コマンド構文と例
コマンド構文
ossutil website --method put oss://bucketname local_xml_file次の表は、上記のコマンドのパラメーターについて説明しています。
パラメーター
説明
bucketname
Web サイト関連の構成を追加するバケット、または Web サイト関連の構成を変更するバケットの名前。
local_xml_file
Web サイトルールを構成するために使用するローカルファイルの名前。例:
localfile.xml。例
localfile.xmlという名前のローカルファイルを作成し、ファイルにさまざまな Web サイトルールを構成します。次のサンプルコードは、静的 Web サイトホスティング構成と原点復帰構成を含む、完全な Web サイト関連構成をバケットに追加する方法の例を示しています。実際の要件に基づいて、静的 Web サイトホスティング構成または原点復帰構成のみを追加できます。
静的 Web サイトホスティング構成
次の例では、<IndexDocument> フィールドは、静的 Web サイトのデフォルトのホームページが
index.htmlであることを指定しています。 <ErrorDocument> フィールドは、静的 Web サイトのデフォルトの 404 ページがerror.htmlであることを指定しています。原点復帰構成
次の例では、<RoutingRules> フィールドは原点復帰ルールを指定しています。原点復帰ルールに構成できるパラメーターの詳細については、「概要」をご参照ください。
<?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>次のコマンドを実行して、examplebucket という名前のバケットに Web サイト関連の構成を追加します。
ossutil website --method put oss://examplebucket localfile.xml同様の出力が表示された場合、Web サイト関連の構成が examplebucket に追加されます。
0.299514(s) elapsed
Web サイト関連の構成をクエリする
コマンド構文
ossutil website --method get oss://bucketname [local_xml_file]次の表は、上記のコマンドのパラメーターについて説明しています。
パラメーター
説明
bucketname
Web サイト関連の構成をクエリするバケットの名前。
local_xml_file
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
Web サイト関連の構成を削除する
コマンド構文
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 シークレットを指定します。
たとえば、次のコマンドを実行して、中国 (杭州) リージョンにあり、別の Alibaba Cloud アカウントが所有する testbucket という名前のバケットに Web サイト関連の構成を追加できます。
ossutil website --method put oss://testbucket localfile.xml -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret共通オプションの詳細については、「共通オプション」をご参照ください。