功能描述
PUT Bucket website 请求用于为存储桶配置静态网站,您可以通过传入 XML 格式的配置文件进行配置,文件大小限制为64KB。
授权说明
请求
请求示例
PUT /?website HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateContent-Type: application/xmlContent-Length: Content LengthContent-MD5: MD5Authorization: Auth String[Request Body]
说明
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com,其中 <BucketName-APPID> 为带 APPID 后缀的存储桶名字,例如 examplebucket-1250000000,可参见 存储桶概览 > 基本信息 和 存储桶概述 > 存储桶命名规范 文档;<Region> 为 COS 的可用地域,可参见 地域和访问域名 文档。
Authorization: Auth String(详情请参见 请求签名 文档)。
请求参数
此接口无请求参数。
请求头
请求体
提交 application/xml 请求数据,包含完整的存储桶静态网站配置信息。
<WebsiteConfiguration><IndexDocument><Suffix>String</Suffix></IndexDocument><RedirectAllRequestsTo><Protocol>String</Protocol></RedirectAllRequestsTo><AutoAddressing><Status>Enabled|Disabled</Status></AutoAddressing><ErrorDocument><Key>String</Key><Charity404>Enabled|Disabled</Charity404><OriginalHttpStatus>Enabled|Disabled</OriginalHttpStatus></ErrorDocument><RoutingRules><RoutingRule><Condition><HttpErrorCodeReturnedEquals>Integer</HttpErrorCodeReturnedEquals></Condition><Redirect><Protocol>String</Protocol><ReplaceKeyWith>String</ReplaceKeyWith><URLRedirect>Enabled|Disabled</URLRedirect></Redirect></RoutingRule><RoutingRule><Condition><KeyPrefixEquals>String</KeyPrefixEquals></Condition><Redirect><Protocol>String</Protocol><ReplaceKeyPrefixWith>String</ReplaceKeyPrefixWith><URLRedirect>Enabled|Disabled</URLRedirect></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 | 否 |
Charity404 | WebsiteConfiguration.ErrorDocument | 用于配置错误码为404时,是否展示404公益页面,可选值为Enabled 或 Disabled,默认为 Disabled。 | 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 必选其一 |
URLRedirect | WebsiteConfiguration.RoutingRules.RoutingRule.Redirect | 重定向规则中 URL 是否跟随替换内容做更改。枚举值:Enabled、Disabled。默认值为 Enabled | String | 否 |
响应
响应头
响应体
此接口响应体为空。
错误码
实际案例
请求
PUT /?website HTTP/1.1Host: examplebucket-1250000000.cos.ap-beijing.myqcloud.comDate: Wed, 20 May 2020 09:33:38 GMTContent-Type: application/xmlContent-Length: 1209Content-MD5: VHzj4Uwb++HLyCJp7jUzWg==Authorization: q-sign-algorithm=sha1&q-ak=AKID8A0fBVtYFrNm02oY1g1JQQF0c3JO****&q-sign-time=1589967218;1589974418&q-key-time=1589967218;1589974418&q-header-list=content-length;content-md5;content-type;date;host&q-url-param-list=website&q-signature=4666493555640e834a879c78afaa4fd9b16a****Connection: close<WebsiteConfiguration><IndexDocument><Suffix>index.html</Suffix></IndexDocument><RedirectAllRequestsTo><Protocol>https</Protocol></RedirectAllRequestsTo><ErrorDocument><Key>pages/error.html</Key></ErrorDocument><RoutingRules><RoutingRule><Condition><HttpErrorCodeReturnedEquals>403</HttpErrorCodeReturnedEquals></Condition><Redirect><Protocol>https</Protocol><ReplaceKeyWith>pages/403.html</ReplaceKeyWith></Redirect></RoutingRule><RoutingRule><Condition><HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals></Condition><Redirect><ReplaceKeyWith>pages/404.html</ReplaceKeyWith></Redirect></RoutingRule><RoutingRule><Condition><KeyPrefixEquals>assets/</KeyPrefixEquals></Condition><Redirect><ReplaceKeyWith>index.html</ReplaceKeyWith></Redirect></RoutingRule><RoutingRule><Condition><KeyPrefixEquals>article/</KeyPrefixEquals></Condition><Redirect><Protocol>https</Protocol><ReplaceKeyPrefixWith>archived/</ReplaceKeyPrefixWith></Redirect></RoutingRule></RoutingRules></WebsiteConfiguration>
响应
HTTP/1.1 200 OKContent-Length: 0Connection: closeDate: Wed, 20 May 2020 09:33:38 GMTServer: tencent-cosx-cos-request-id: NWVjNGY5NzJfOThjMjJhMDlfMjg5Ml8yYzNi****
常见问题
1. 错误文档、404公益页面、重定向规则按什么优先级生效?
若用户同时设置了错误文档、开启404公益页面、重定向规则,三类设置同时命中时,生效优先级为:重定向规则 > 404公益页面 > 错误文档。