靜態網站托管功能允許您將靜態網站托管到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獲取到正確的數據。
有關靜態網站托管功能的更多信息,請參見靜態網站托管概述。
有關回源功能的更多信息,請參見回源概述。
當您在OSS ON云盒中使用該命令時:
將配置文件中的Endpoint替換為云盒Endpoint。更多信息,請參見云盒Endpoint。
在本文已有示例的基礎上添加--sign-version、--region以及--cloudbox-id選項。關于這三個選項的具體用法,請參見通用選項。
添加或修改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****
關于此命令的其他通用選項的更多信息,請參見通用選項。