静态网站托管功能允许您将静态网站托管到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****
关于此命令的其他通用选项的更多信息,请参见通用选项。