接口介绍
此接口用于开启桶静态网站托管配置,主要用于设置默认主页、默认404页和RoutingRule。RoutingRule用来指定3xx跳转规则以及镜像回源规则。
接口约束
- 该接口主要用于设置默认主页、默认404页和RoutingRule。RoutingRule用来指定3xx跳转规则以及镜像回源规则。
- 将一个Bucket设置为静态网站托管模式时,如果指定了索引页面或错误页面,则指定的索引页面和错误页面为该Bucket内的某个Object。
- 将一个Bucket设置为静态网站托管模式后,对静态网站根域名的匿名访问,将返回索引页面。
请求URI
PUT /v1/website/{bucket}
路径参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
bucket | 是 | String | 桶名称 | testBucket |
Query参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
website | 是 | String | 固定参数 | website |
请求参数
请求头header参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
Content-Type | 是 | String | 消息体格式 | application/xml |
请求体body参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
WebsiteConfiguration | 是 | Array of Objects | 静态网站托管设置根节点 | WebsiteConfiguration |
表 WebsiteConfiguration
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
IndexDocument | 否 | Array of Objects | 设置默认主页,IndexDocument和RedirectAllRequestsTo二选一,如果同时设置最终只有RedirectAllRequestsTo生效 | IndexDocument | |
ErrorDocument | 否 | Array of Objects | 设置404页面的容器 | ErrorDocument | |
RedirectAllRequestsTo | 否 | Array of Objects | 对此桶的网站端点的每个请求的重定向行为,IndexDocument和RedirectAllRequestsTo二选一,如果同时设置最终只有RedirectAllRequestsTo生效 | RedirectAllRequestsTo | |
RoutingRules | 否 | Array of Objects | 路由规则配置,设置时必须配置IndexDocument | RoutingRules |
表 IndexDocument
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
Suffix | 否 | String | 默认主页,设置默认主页后,如果访问以正斜线(/)结尾的Object,则都会返回此默认主页,如果存在IndexDocument,则必须指定该项 | aa.html |
表 ErrorDocument
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
Key | 否 | String | 错误页面,指定错误页面后,如果访问的Object不存在,则返回此错误页面 | bb.html |
表 RedirectAllRequestsTo
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
HostName | 否 | String | 请求重定向的主机名,果存在RedirectAllRequestsTo,则必须指定该项 | ||
Protocol | 否 | String | 重定向请求时使用的协议。默认是原始请求中使用的协议 |
表 RoutingRules
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
RoutingRule | 否 | Array of Objects | 路由规则具体配置 | RoutingRule |
表 RoutingRule
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
Condition | 否 | Array of Objects | 用于描述应用指定重定向必须满足的条件 | Condition | |
Redirect | 否 | Array of Objects | 容器用于重定向信息,可以将请求重定向到另一个主机、另一个页面或使用另一种协议,在发生错误时,可以指定要返回的不同错误代码 | Redirect |
表 Condition
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
KeyPrefixEquals | 否 | String | 只有匹配此前缀的Object才能匹配此规则 | /docs | |
HttpErrorCodeReturnedEquals | 否 | String | 应用重定向时的HTTP错误代码,在发生错误时,如果错误代码等于此值,则应用指定的重定向。当Condition被指定且元素KeyPrefixEquals未被指定时需要。如果两者都指定了,那么要应用重定向,两者都必须为真 | 403 |
表 Redirect
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
HostName | 否 | String | 跳转时的域名,域名需符合域名规范 | ||
HttpRedirectCode | 否 | String | 跳转时返回的状态码 | 301,302 | |
Protocol | 否 | String | 跳转时的协议 | http,https | |
ReplaceKeyPrefixWith | 否 | String | Redirect时Object名称的前缀将替换成该值。如果前缀为空,则将这个字符串插入Object名称的前面 | ||
ReplaceKeyWith | 否 | String | Redirect时Object名称将替换成ReplaceKeyWith指定的值,ReplaceKeyWith支持设置变量 |
响应参数
无
请求示例
PUT /v1/website/testbucket?website
请求头header
Content-Type: application/xml
请求体body
<?xml version="1.0" encoding="UTF-8"?>
<WebsiteConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<IndexDocument>
<Suffix>aa.html</Suffix>
</IndexDocument>
<ErrorDocument>
<Key>bb.html</Key>
</ErrorDocument>
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>docs/</KeyPrefixEquals>
<HttpErrorCodeReturnedEquals>403</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<Protocol>http</Protocol>
<HostName>test11.sink.example.1cn</HostName>
<HttpRedirectCode>302</HttpRedirectCode>
<ReplaceKeyPrefixWith>documents/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
</WebsiteConfiguration>
响应示例
HTTP/1.1 200 OK
x-amz-request-id: tx000000000000000000274-00632298b2-3b9ae-default
Date: Wed, 06 Sep 2017 12:00:00 GMT
状态码
HTTP状态 | 描述 |
---|---|
200 | 操作成功 |
400 | 桶的名字不合法 |
403 | 用户没有权限执行操作 |
405 | 服务器不支持当前操作 |