静的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サイト関連の設定を追加または変更するには、次の手順を実行します。
ローカルファイルを作成し、Webサイト関連の設定をファイルに追加します。
Webサイト関連の設定を宛先バケットに追加します。
コマンドの構文と例
コマンド構文
./ossutil64 website -- メソッドput oss:// bucketname local_xml_file
次の表に、上記のコマンドのパラメーターを示します。
パラメーター
説明
bucketname
Webサイト関連の設定を追加するバケット、またはWebサイト関連の設定を変更するバケットの名前。
local_xml_ファイル
Webサイトのルールの設定に使用するローカルファイルの名前。 例:
localfile.xml
例
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>
次のコマンドを実行して、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 ****
共通オプションの詳細については、「共通オプション」をご参照ください。