设置静态网站

最近更新时间: 2024-08-23 15:08: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 的内容:

节点名称(关键字) 父节点 描述 类型 是否必选
IndexDocument WebsiteConfiguration 索引文档配置 Container
RedirectAllRequestsTo WebsiteConfiguration 重定向所有请求配置 Container
AutoAddressing WebsiteConfiguration 用于配置是否忽略扩展名 Container
ErrorDocument WebsiteConfiguration 错误文档配置 Container
RoutingRules WebsiteConfiguration 重定向规则配置,最多设置100条 RoutingRule Container

Container 节点 IndexDocument 的内容:

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

Container 节点 RedirectAllRequestsTo 的内容:

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

Container 节点 AutoAddressing 的内容:

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

Container 节点 ErrorDocument 的内容:

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

Container 节点 RoutingRules 的内容:

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

Container 节点 RoutingRules.RoutingRule 的内容:

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

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

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

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

节点名称(关键字) 父节点 描述 类型 是否必选
Protocol WebsiteConfiguration.RoutingRules.RoutingRule.Redirect 指定重定向规则的目标协议,只能设置为 https String
ReplaceKeyWith WebsiteConfiguration.RoutingRules.RoutingRule.Redirect 指定重定向规则的具体重定向目标的对象键,替换方式为替换整个原始请求的对象键 String ReplaceKeyWith 与 ReplaceKeyPrefixWith 必选其一
ReplaceKeyPrefixWith WebsiteConfiguration.RoutingRules.RoutingRule.Redirect 指定重定向规则的具体重定向目标的对象键,替换方式为替换原始请求中所匹配到的前缀部分,仅可在 Condition 为 KeyPrefixEquals 时设置 String ReplaceKeyWith 与 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****