Overview
This API is used to configure a static website for a bucket by importing configuration files in XML format. The file size is limited to 64 KB.
Note:
If a bucket already has a static website configuration, calling this API will overwrite the existing static website configuration information.
Authorization Description
In the authorization policy, action is set to cos:PutBucketWebsite. View all action. Request
Sample request
PUT /?website HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date
Content-Type: application/xml
Content-Length: Content Length
Content-MD5: MD5
Authorization: Auth String
[Request Body]
Request parameters
This API has no request parameter.
Request headers
Request body
This request body submits the application/xml data that includes all information about the static website configuration of the bucket.
<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>
The nodes are described as follows:
|
| | Contains all the request information about PUT Bucket website | | Yes |
Content of WebsiteConfiguration:
|
| | Index document configuration | | |
| | Configures redirection for all requests | | |
| | Whether to ignore all file extensions | | |
| | Error document configuration | | |
| | Routing rule configuration. A RoutingRules container can contain up to 100 RoutingRule elements. | | |
Content of IndexDocument:
|
| WebsiteConfiguration.IndexDocument | Specifies the object key suffix for index documents. For example, if it is specified as index.html, the request automatically returns index.html when you access the root directory of the bucket, or article/index.html when you access the directory article/. | | |
Content of RedirectAllRequestsTo:
|
| WebsiteConfiguration.RedirectAllRequestsTo | Specifies the target protocol to redirect all requests. Only HTTPS is supported. | | No |
Content of AutoAddressing:
|
| WebsiteConfiguration.AutoAddressing | Whether to ignore the HTML file extension. Valid values: Enabled, Disabled (default) | | |
Content of ErrorDocument:
|
| WebsiteConfiguration.ErrorDocument | Specifies the object key to return for the error document if an error occurs and does not match the error code in the routing rule | | No |
| WebsiteConfiguration.ErrorDocument | Configures whether to return the corresponding HTTPS status code if the error documents are hit. Valid values: Enabled (default), Disabled | | |
Charity404 | WebsiteConfiguration.ErrorDocument | Configures whether to display the 404 public welfare page when the error code is 404. Valid values: Enabled or Disabled. Default: Disabled. | String | No |
Content of RoutingRules:
|
| WebsiteConfiguration.RoutingRules | | | |
Content of RoutingRules.RoutingRule:
|
| WebsiteConfiguration.RoutingRules.RoutingRule | Condition for the routing rule | | |
| WebsiteConfiguration.RoutingRules.RoutingRule | Configuration of the redirection target | | |
Content of RoutingRules.RoutingRule.Condition:
|
HttpErrorCodeReturnedEquals | WebsiteConfiguration.RoutingRules.RoutingRule.Condition | Specifies the error code as the match condition for the routing rule. Valid values: only 4xx return codes, such as 403 or 404. | | Either this parameter or KeyPrefixEquals must be specified. |
| WebsiteConfiguration.RoutingRules.RoutingRule.Condition | Specifies the object key prefix as the match condition for the routing rule | | Either this parameter or HttpErrorCodeReturnedEquals must be specified. |
Content of RoutingRules.RoutingRule.Redirect:
|
| WebsiteConfiguration.RoutingRules.RoutingRule.Redirect | Specifies the target protocol for the routing rule. Only HTTPS is supported. | | |
| WebsiteConfiguration.RoutingRules.RoutingRule.Redirect | Specifies the target object key to replace the original object key in the request. | | Either this parameter or ReplaceKeyPrefixWith must be specified. |
| WebsiteConfiguration.RoutingRules.RoutingRule.Redirect | Specifies the object key prefix to replace the original prefix in the request. You can set this parameter only if the condition is KeyPrefixEquals. | | Either this parameter or ReplaceKeyWith must be specified. |
| WebsiteConfiguration.RoutingRules.RoutingRule.Redirect | Whether the URL in the redirect rule changes according to the replacement content. Valid values: Enabled, Disabled. The default value is Enabled. | | |
Response
Response headers
Response body
The response body of this API is empty.
Error codes
This API returns common error responses and error codes. For more information, please see Error Codes. Samples
Request
PUT /?website HTTP/1.1
Host: examplebucket-1250000000.cos.ap-beijing.myqcloud.com
Date: Wed, 20 May 2020 09:33:38 GMT
Content-Type: application/xml
Content-Length: 1209
Content-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>
Response
HTTP/1.1 200 OK
Content-Length: 0
Connection: close
Date: Wed, 20 May 2020 09:33:38 GMT
Server: tencent-cos
x-cos-request-id: NWVjNGY5NzJfOThjMjJhMDlfMjg5Ml8yYzNi****
FAQs
Error Documents, 404 Default Pages, and Redirect Rules Take Effect in the Following Order of Precedence
If the user has configured the error document, enabled the 404 public welfare page, and set redirect rules simultaneously, the priority order when all three are triggered is: redirect rules > 404 public welfare page > error document.