静态网站托管功能允许您将静态网站托管到OSS的存储空间(Bucket),并使用Bucket的访问域名访问这个网站。Bucket配置静态网站托管后,当您的用户向OSS请求的数据不存在时,可通过设置回源规则确保其仍然可以获取正确的数据。website命令用于添加、修改、查询、删除Bucket的静态网站托管以及回源配置。
注意事项
- 本文各命令行示例均基于Linux 64位系统,其他系统请将命令开头的./ossutil64替换成对应的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配置的命令格式及示例如下:
- 命令格式
./ossutil64 website --method put oss://bucketname local_xml_file
参数说明如下:
参数 说明 bucketname 待添加或修改Website配置的Bucket名称。 local_xml_file 配置Website规则的本地文件名称,例如 localfile.txt
。 - 使用示例
- 在本地创建名为
localfile.txt
文件,并根据使用场景配置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配置。
./ossutil64 website --method put oss://examplebucket localfile.txt
以下输出结果表明已成功添加Website配置。
0.299514(s) elapsed
- 在本地创建名为
获取website配置
- 命令格式
./ossutil64 website --method get oss://bucketname [local_xml_file]
参数说明如下:
参数 说明 bucketname 待获取Website配置的目标Bucket名称。 local_xml_file 用于存放Website配置的本地文件名称,例如 localfile.txt
。如果未指定此参数,则Website配置将直接输出到屏幕。 - 使用示例
- 获取目标存储空间examplebucket的Website配置,并将配置结果写入本地文件
localfile.txt
。./ossutil64 website --method get oss://examplebucket localfile.txt
以下输出结果表明已成功获取Website配置,并将其写入本地localfile.txt文件。
0.212407(s) elapsed
- 获取目标存储空间examplebucket的Website配置,并将配置结果直接输出屏幕。
./ossutil64 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
- 获取目标存储空间examplebucket的Website配置,并将配置结果写入本地文件
删除Website配置
- 命令格式
./ossutil64 website --method delete oss://bucketname
- 使用示例
删除目标存储空间examplebucket的Website配置。
./ossutil64 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配置,命令如下:
./ossutil64 website --method put oss://testbucket localfile.txt -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
关于此命令的其他通用选项的更多信息,请参见通用选项。