Skip to content

Latest commit

 

History

History
280 lines (224 loc) · 12.5 KB

设置桶的网站配置.md

File metadata and controls

280 lines (224 loc) · 12.5 KB

设置桶的网站配置

功能介绍

OBS允许在桶内保存静态的网页资源,如.html网页文件、flash文件、音视频文件等,当客户端通过桶的Website接入点访问这些对象资源时,浏览器可以直接解析出这些支持的网页资源,呈现给最终用户。典型的应用场景有:

  • 重定向所有的请求到另外一个站点。
  • 设定特定的重定向规则来重定向特定的请求。

本接口实现为桶创建或更新网站配置信息。

要正确执行此操作,需要确保执行者有PutBucketWebsite权限。默认情况下只有桶的所有者可以执行此操作,也可以通过设置桶策略或用户策略授权给其他用户。

说明: 1.尽量避免目标桶名中带有“.”,否则通过HTTPS访问时可能出现客户端校验证书出错。 2.设置桶的网络配置请求消息体的上限是10KB。

请求消息样式

PUT /?website HTTP/1.1 
Host: bucketname.obs.cn-north-4.myhuaweicloud.com 
Content-Length: length
Date: date
Authorization: authorization
<WebsiteConfiguration> 
    <RedirectAllRequestsTo> 
        <HostName>hostName</HostName> 
    </RedirectAllRequestsTo> 
</WebsiteConfiguration>

请求消息参数

该请求消息中不使用消息参数。

请求消息头

该请求使用公共消息头,具体参见表3

请求消息元素

在此请求中,需要在请求的消息体中配置桶的网站配置信息,配置信息以XML格式上传。

  • 如果重定向所有请求,网站配置元素如表1描述。

    表 1 重定向所有请求Website配置元素

名称 描述 是否必选
WebsiteConfiguration 网站配置的根节点。类型:Container父节点:无
RedirectAllRequestsTo 描述所有请求的重定向行为,如果这个节点出现,所有其他的兄弟节点都不能出现。类型:Container父节点:WebsiteConfiguration
HostName 描述重定向的站点名。类型:String父节点:RedirectAllRequestsTo
Protocol 描述重定向请求时使用的协议(http,https),默认使用http协议。类型:String父节点:RedirectAllRequestsTo
  • 如果想要设定重定向规则,网站配置元素如表2描述。

    表 2 设定重定向规则Website配置元素

名称 描述 是否必选
WebsiteConfiguration Website配置的根节点。类型:Container父节点:无
IndexDocument Suff元素。类型:Container父节点:WebsiteConfiguration
Suffix Suffix元素被追加在对文件夹的请求的末尾(例如:Suffix配置的是“index.html”,请求的是“samplebucket/images/”,返回的数据将是“samplebucket”桶内名为“images/index.html”的对象的内容)。Suffix元素不能为空或者包含“/”字符。类型:String父节点:IndexDocument
ErrorDocument Key元素。类型:Container父节点:WebsiteConfiguration
Key 当4XX错误出现时使用的对象的名称。这个元素指定了当错误出现时返回的页面。类型:String父节点:ErrorDocument条件:父节点ErrorDocument存在时
RoutingRules Routing元素。类型:Container父节点:WebsiteConfiguration
RoutingRule 重定向规则的元素。一条重定向规则包含一个Condition和一个Redirect,当Condition匹配时,Redirect生效。类型:Container父节点:RoutingRules元素中至少要有一个RoutingRule元素
Condition 描述重定向规则匹配的条件的元素。类型:Container父节点:RoutingRule
KeyPrefixEquals 描述当重定向生效时对象名的前缀。例如:重定向ExamplePage.html对象的请求,KeyPrefixEquals设为ExamplePage.html。类型:String父节点:Condition条件:父节点Condition存在,并且兄弟节点HttpErrorCodeReturnedEquals不存在。如果设定了两个条件,只有都匹配时,Redirect才生效。
HttpErrorCodeReturnedEquals 描述Redirect生效时的HTTP错误码。当发生错误时,如果错误码等于这个值,那么Redirect生效。例如:当返回的http错误码为404时重定向到NotFound.html,可以将Condition中的HttpErrorCodeReturnedEquals设置为404,Redirect中的ReplaceKeyWith设置为NotFound.html。类型:String父节点:Condition条件:父节点Condition存在,并且兄弟节点KeyPrefixEquals不存在。如果设定了多个条件,需要同时匹配所有的条件,Redirect才可生效。
Redirect 重定向信息的元素。可以重定向到另一个站点、另一个页面或使用另一个协议。当事件或错误发生时,可以指定不同的返回码。类型:Container父节点:RoutingRule
Protocol 描述重定向请求时使用的协议。类型:String父节点:Redirect可选值:http、https条件:有其他兄弟节点存在时非必选
HostName 描述重定向请求时使用的站点名。类型:String父节点:Redirect条件:有其他兄弟节点存在时非必选
ReplaceKeyPrefixWith 描述重定向请求时使用的对象名前缀,请求中的对象名会将KeyPrefixEquals的内容替换为ReplaceKeyPrefixWith的内容。例如:想把所有对docs(目录下的对象)的请求重定向到documents(目录下的对象),可以将Condition中的KeyPrefixEquals设置为docs,Redirect中的ReplaceKeyPrefixWith设置为documents。那么对于对象名称为"docs/a.html",重定向的结果为"documents/a.html"。类型:String父节点:Redirect条件:有其他兄弟节点存在时非必选,不可与ReplaceKeyWith同时存在
ReplaceKeyWith 描述重定向请求时使用的对象名,请求中的整个对象名会被替换为ReplaceKeyWith的内容。例如:想把所有对"docs"目录下的所有对象的请求重定向到"documents/error.html",可以将Condition中的KeyPrefixEquals设置为docs,Redirect中的ReplaceKeyWith设置为"documents/error.html"。那么对于对象名称为"docs/a.html"和"docs/b.html",重定向的结果都为"documents/error.html"。类型:String父节点:Redirect条件:有其他兄弟节点存在时非必选,不可与ReplaceKeyPrefixWith同时存在
HttpRedirectCode 描述响应中的HTTP状态码。类型:String父节点:Redirect条件:有其他兄弟节点存在时非必选

响应消息样式

HTTP/1.1 status_code
Date: date
Content-Length: length

响应消息头

该请求的响应消息使用公共消息头,具体请参考表1

响应消息元素

该请求的响应消息不带消息元素。

错误响应消息

无特殊错误,所有错误已经包含在表2中。

请求示例:将该桶的所有请求重定向至其他桶或URL

PUT /?website HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 03:40:29 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:pUK7Yp0yebnq4P6gqzVjoS7whoM=
Content-Length: 194

<WebsiteConfiguration xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/">
  <RedirectAllRequestsTo>
    <HostName>www.huaweicloud.com</HostName>
  </RedirectAllRequestsTo>
</WebsiteConfiguration>

响应示例:将该桶的所有请求重定向至其他桶或URL

HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BF2600000164360D144670B9D02AABC6
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSItqMZ/AoFUX97l1xx8s67V3cCQtXWk
Date: WED, 01 Jul 2015 03:40:29 GMT
Content-Length: 0

请求示例:设置桶的网站配置,不配置重定向

PUT /?website HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml
 
<WebsiteConfiguration  xmlns='http://obs.region.myhuaweicloud.com/doc/2015-06-30/'>
    <IndexDocument>
        <Suffix>index.html</Suffix>
    </IndexDocument>
    <ErrorDocument>
        <Key>SomeErrorDocument.html</Key>
    </ErrorDocument>
</WebsiteConfiguration>

响应示例:设置桶的网站配置,不配置重定向

x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSfxlr+FrXuJzYpLod1lrLK45tVx+GPR
x-obs-request-id: 0000018A39F07D0DD3888442DC29719E
Server: OBS
Content-Length: 0
Date: WED, 01 Jul 2015 02:37:22 GMT

请求示例:设置桶的网站配置,并指定可选的重定向规则

PUT /?website HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml
 
<WebsiteConfiguration  xmlns='http://obs.region.myhuaweicloud.com/doc/2015-06-30/'>
    <IndexDocument>
        <Suffix>index.html</Suffix>
    </IndexDocument>
    <ErrorDocument>
        <Key>Error.html</Key>
    </ErrorDocument>
    <RoutingRules>
        <RoutingRule>
            <Condition>
                <KeyPrefixEquals>docs/</KeyPrefixEquals>
            </Condition>
            <Redirect>
                <ReplaceKeyPrefixWith>documents/</ReplaceKeyPrefixWith>
            </Redirect>
        </RoutingRule>
    </RoutingRules>
</WebsiteConfiguration>

响应示例:设置桶的网站配置,并指定可选的重定向规则

x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSxixo46vLYhGrY/zwgqlM0fMNpeFthi
x-obs-request-id: 0000018A39F2E328D3888F46DB9BB5A2
Server: OBS
Content-Length: 0
Date: WED, 01 Jul 2015 02:37:22 GMT

请求示例:设置桶的网站配置,并重定向错误

PUT /?website HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml
 
<WebsiteConfiguration  xmlns='http://obs.region.myhuaweicloud.com/doc/2015-06-30/'>
    <IndexDocument>
        <Suffix>index.html</Suffix>
    </IndexDocument>
    <ErrorDocument>
        <Key>Error.html</Key>
    </ErrorDocument>
    <RoutingRules>
        <RoutingRule>
            <Condition>
                <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals >
            </Condition>
            <Redirect>
                <HostName>www.huaweicloud.com</HostName>
                <ReplaceKeyPrefixWith>report-404/</ReplaceKeyPrefixWith>
            </Redirect>
        </RoutingRule>
    </RoutingRules>
</WebsiteConfiguration>

响应示例:设置桶的网站配置,并重定向错误

x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCS/xBBLGZwRUiL439eWMw1v/vphFB6JY
x-obs-request-id: 0000018A3A06C048D38610C04366B2F5
Server: OBS
Content-Length: 0
Date: WED, 01 Jul 2015 02:37:22 GMT

请求示例:设置桶的网站配置,并将文件夹请求重定向到页面

PUT /?website HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml
 
<WebsiteConfiguration  xmlns='http://obs.region.myhuaweicloud.com/doc/2015-06-30/'>
    <IndexDocument>
        <Suffix>index.html</Suffix>
    </IndexDocument>
    <ErrorDocument>
        <Key>Error.html</Key>
    </ErrorDocument>
    <RoutingRules>
        <RoutingRule>
            <Condition>
                <KeyPrefixEquals>images/</KeyPrefixEquals>
            </Condition>
            <Redirect>
                <ReplaceKeyWith>errorpage.html</ReplaceKeyWith>
            </Redirect>
        </RoutingRule>
    </RoutingRules>
</WebsiteConfiguration>

响应示例:设置桶的网站配置,并将文件夹请求重定向到页面

x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSLjAKDDyha8LY/HcoFNfbLBeAKCAYcv
x-obs-request-id: 0000018A3A09D30CD306902FC7572429
Server: OBS
Content-Length: 0
Date: WED, 01 Jul 2015 02:37:22 GMT