设置静态网站

最近更新时间: 2024-12-19 17:12:00

功能描述

PUT Bucket website 请求用于为存储桶配置静态网站,您可以通过传入 XML 格式的配置文件进行配置,文件大小限制为64KB。

请求

请求示例

PUT /?website HTTP/1.1
Host: <BucketName-APPID>.<Endpoint>
Authorization: Auth String
[Request Body]

说明:

  • Host: <BucketName-APPID>.<Endpoint>,其中 <BucketName-APPID> 为带 APPID 后缀的存储桶名字,例如 examplebucket-1250000000,可参阅 存储桶概述 > 命名规范 文档;
  • Authorization: Auth String(详情请参见 请求签名 文档)。

请求参数

此接口无请求参数。

请求头

此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。

请求体

提交 application/xml 请求数据,包含完整的存储桶静态网站配置信息。

<WebsiteConfiguration>
    <IndexDocument>
        <Suffix>index.html</Suffix>
    </IndexDocument>
    <ErrorDocument>
        <Key>error.html</Key>
        <OriginalHttpStatus>Disabled</OriginalHttpStatus>
    </ErrorDocument>
    <AutoAddressing>
        <Status>Enabled</Status>
    </AutoAddressing>
    <RoutingRules>
        <RoutingRule>
            <Condition>
                <HttpErrorCodeReturnedEquals>403</HttpErrorCodeReturnedEquals>
            </Condition>
            <Redirect>
                <Protocol>http</Protocol>
                <ReplaceKeyWith>123.txt</ReplaceKeyWith>
            </Redirect>
        </RoutingRule>
    </RoutingRules>
</WebsiteConfiguration>

具体的节点描述如下:

节点名称(关键字)父节点描述类型是否必选
WebsiteConfiguration包含 PUT Bucket website 操作的所有请求信息Container

Container 节点 WebsiteConfiguration 的内容:

节点名称(关键字)父节点描述类型是否必选
IndexDocumentWebsiteConfiguration索引文档配置Container
RedirectAllRequestsToWebsiteConfiguration重定向所有请求配置Container
AutoAddressingWebsiteConfiguration用于配置是否忽略扩展名Container
ErrorDocumentWebsiteConfiguration错误文档配置Container
RoutingRulesWebsiteConfiguration重定向规则配置,最多设置100条 RoutingRuleContainer

Container 节点 IndexDocument 的内容:

节点名称(关键字)父节点描述类型是否必选
SuffixWebsiteConfiguration.IndexDocument指定索引文档的对象键后缀。例如指定为`index.html`,那么当访问到存储桶的根目录时,会自动返回 index.html 的内容,或者当访问到`article/`目录时,会自动返回 `article/index.html`的内容String

Container 节点 RedirectAllRequestsTo 的内容:

节点名称(关键字)父节点描述类型是否必选
ProtocolWebsiteConfiguration.RedirectAllRequestsTo指定重定向所有请求的目标协议,只能设置为 httpsString

Container 节点 AutoAddressing 的内容:

节点名称(关键字)父节点描述类型是否必选
StatusWebsiteConfiguration.AutoAddressing用于配置是否忽略 HTML 拓展名,可选值为 Enabled 或 Disabled,默认为 DisabledString

Container 节点 ErrorDocument 的内容:

节点名称(关键字)父节点描述类型是否必选
KeyWebsiteConfiguration.ErrorDocument指定通用错误文档的对象键,当发生错误且未命中重定向规则中的错误码重定向时,将返回该对象键的内容String
OriginalHttpStatusWebsiteConfiguration.ErrorDocument用于配置命中错误文档的 HTTP 状态码,可选值为 Enabled 或 Disabled,默认为 EnabledString

Container 节点 RoutingRules 的内容:

节点名称(关键字)父节点描述类型是否必选
RoutingRuleWebsiteConfiguration.RoutingRules单条重定向规则配置Container

Container 节点 RoutingRules.RoutingRule 的内容:

节点名称(关键字)父节点描述类型是否必选
ConditionWebsiteConfiguration.RoutingRules.RoutingRule重定向规则的条件配置Container
RedirectWebsiteConfiguration.RoutingRules.RoutingRule重定向规则的具体重定向目标配置Container

Container 节点 RoutingRules.RoutingRule.Condition 的内容:

节点名称(关键字)父节点描述类型是否必选
HttpErrorCodeReturnedEqualsWebsiteConfiguration.RoutingRules.RoutingRule.Condition指定重定向规则的错误码匹配条件,只支持配置4XX返回码,例如403或404IntegerHttpErrorCodeReturnedEquals 与 KeyPrefixEquals 必选其一
KeyPrefixEqualsWebsiteConfiguration.RoutingRules.RoutingRule.Condition指定重定向规则的对象键前缀匹配条件StringHttpErrorCodeReturnedEquals 与 KeyPrefixEquals 必选其一

Container 节点 RoutingRules.RoutingRule.Redirect 的内容:

节点名称(关键字)父节点描述类型是否必选
ProtocolWebsiteConfiguration.RoutingRules.RoutingRule.Redirect指定重定向规则的目标协议,只能设置为 httpsString
ReplaceKeyWithWebsiteConfiguration.RoutingRules.RoutingRule.Redirect指定重定向规则的具体重定向目标的对象键,替换方式为替换整个原始请求的对象键StringReplaceKeyWith 与 ReplaceKeyPrefixWith 必选其一
ReplaceKeyPrefixWithWebsiteConfiguration.RoutingRules.RoutingRule.Redirect指定重定向规则的具体重定向目标的对象键,替换方式为替换原始请求中所匹配到的前缀部分,仅可在 Condition 为 KeyPrefixEquals 时设置StringReplaceKeyWith 与 ReplaceKeyPrefixWith 必选其一

响应

响应头

此接口仅返回公共响应头部,详情请参见 公共响应头部 文档。

响应体

此接口响应体为空。

错误码

此接口遵循统一的错误响应和错误码,详情请参见 错误码 文档。

实际案例

请求

PUT /?website HTTP 1.1
Host: <BucketName-APPID>.<Endpoint>
Date: Mon, 17 Jun 2019 08:37:35 GMT
Authorization: signatureValue

<WebsiteConfiguration>
    <IndexDocument>
        <Suffix>index.html</Suffix>
    </IndexDocument>
    <ErrorDocument>
        <Key>error.html</Key>
        <OriginalHttpStatus>Disabled</OriginalHttpStatus>
    </ErrorDocument>
    <AutoAddressing>
        <Status>Enabled</Status>
    </AutoAddressing>
    <RoutingRules>
        <RoutingRule>
            <Condition>
                <HttpErrorCodeReturnedEquals>403</HttpErrorCodeReturnedEquals>
            </Condition>
            <Redirect>
                <Protocol>http</Protocol>
                <ReplaceKeyWith>123.txt</ReplaceKeyWith>
            </Redirect>
        </RoutingRule>
    </RoutingRules>
</WebsiteConfiguration>

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 0
Date: Mon, 17 Jun 2019 08:37:36 GMT
Server: tencent-cos
x-cos-request-id: NWQwNzUxNTBfMzdiMDJhMDlfOWM0Nl85NDFk****