靜態網站託管功能允許您將靜態網站託管到OSS的儲存空間(Bucket),並使用Bucket的訪問網域名稱訪問這個網站。Bucket配置靜態網站託管後,當您的使用者向OSS請求的資料不存在時,可通過設定回源規則確保其仍然可以擷取正確的資料。website命令用於添加、修改、查詢、刪除Bucket的靜態網站託管以及回源配置。
注意事項
要添加或修改Website配置,您必須具有
oss:PutBucketWebsite
許可權;要擷取website配置,您必須具有oss:GetBucketWebsite
許可權;要刪除Website配置,您必須具有oss:DeleteBucketWebsite
許可權。具體操作,請參見為RAM使用者授權自訂的權限原則。從ossutil 1.6.16版本開始,命令列中Binary名稱支援直接使用ossutil,您無需根據系統重新整理Binary名稱。如果您的ossutil版本低於1.6.16,則需要根據系統重新整理Binary名稱。更多資訊,請參見命令列工具ossutil命令參考。
Bucket配置靜態網站託管後,當您的使用者向OSS請求的資料不存在時,本應返回404錯誤。如果您設定了回源規則,並填寫了資料的正確地址,則使用者可以通過回源規則從OSS擷取到正確的資料。
有關靜態網站託管功能的更多資訊,請參見靜態網站託管概述。
有關回源功能的更多資訊,請參見回源概述。
添加或修改Website配置
如果Bucket此前未添加過Website配置,則使用該命令將為Bucket添加Website配置。如果Bucket此前已添加Website配置,則使用該命令將直接覆蓋已有的Website配置。
添加或修改Website配置步驟如下:
建立本地檔案,並在檔案中添加Website配置。
將Website配置添加到目標Bucket。
添加或修改Website配置的命令格式及樣本如下:
命令格式
ossutil website --method put oss://bucketname local_xml_file
參數說明如下:
參數
說明
bucketname
待添加或修改Website配置的Bucket名稱。
local_xml_file
配置Website規則的本地檔案名稱,例如
localfile.xml
。使用樣本
在本地建立名為
localfile.xml
檔案,並根據使用情境配置Website規則。如下為Website的完整配置參考樣本,樣本中包含了靜態網站託管以及回源配置。您也可以根據具體的業務情境需求,選擇僅添加靜態網站託管或者回源配置。
靜態網站託管配置
配置樣本中通過<IndexDocument>欄位指定靜態頁面的預設首頁為
index.html
,<ErrorDocument>欄位指定靜態頁面的預設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添加Website配置。
ossutil website --method put oss://examplebucket localfile.xml
以下輸出結果表明已成功添加Website配置。
0.299514(s) elapsed
擷取website配置
命令格式
ossutil website --method get oss://bucketname [local_xml_file]
參數說明如下:
參數
說明
bucketname
待擷取Website配置的目標Bucket名稱。
local_xml_file
用於存放Website配置的本地檔案名稱,例如
localfile.xml
。如果未指定此參數,則Website配置將直接輸出到螢幕。使用樣本
擷取目標儲存空間examplebucket的Website配置,並將配置結果寫入本地檔案
localfile.xml
。ossutil website --method get oss://examplebucket localfile.xml
以下輸出結果表明已成功擷取Website配置,並將其寫入本地localfile.xml檔案。
0.212407(s) elapsed
擷取目標儲存空間examplebucket的Website配置,並將配置結果直接輸出螢幕。
ossutil website --method get oss://examplebucket
以下輸出結果表明已成功擷取Website配置。
<?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
刪除Website配置
命令格式
ossutil website --method delete oss://bucketname
使用樣本
刪除目標儲存空間examplebucket的Website配置。
ossutil website --method delete oss://examplebucket
以下輸出結果表明已成功刪除Website配置。
0.212409(s) elapsed
通用選項
當您需要通過命令列工具ossutil切換至另一個地區的Bucket時,可以通過-e選項指定該Bucket所屬的Endpoint。當您需要通過命令列工具ossutil切換至另一個阿里雲帳號下的Bucket時,可以通過-i選項指定該帳號的AccessKey ID,並通過-k選項指定該帳號的AccessKey Secret。
例如您需要為另一個阿里雲帳號下,華東1(杭州)名為testbucket的Bucket添加Website配置,命令如下:
ossutil website --method put oss://testbucket localfile.xml -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
關於此命令的其他通用選項的更多資訊,請參見通用選項。