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
Request
Sample request
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]
Note:
In
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com, <BucketName-APPID> is the bucket name followed by the APPID, such as examplebucket-1250000000 (see Bucket Overview > Basic Information and Bucket Overview > Bucket Naming Conventions), and <Region> is a COS region (see Regions and Access Endpoints).Authorization: Auth String (See Request Signature for details.)
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:
Node Name (Keyword) | Parent Node | Description | Type | Required |
WebsiteConfiguration | None | Contains all the request information about PUT Bucket website | Container | Yes |
Content of
WebsiteConfiguration:Node Name (Keyword) | Parent Node | Description | Type | Required |
IndexDocument | WebsiteConfiguration | Index document configuration | Container | Yes |
RedirectAllRequestsTo | WebsiteConfiguration | Configures redirection for all requests | Container | No |
AutoAddressing | WebsiteConfiguration | Whether to ignore all file extensions | Container | No |
ErrorDocument | WebsiteConfiguration | Error document configuration | Container | No |
RoutingRules | WebsiteConfiguration | Routing rule configuration. A RoutingRules container can contain up to 100 RoutingRule elements. | Container | No |
Content of
IndexDocument:Node Name (Keyword) | Parent Node | Description | Type | Required |
Suffix | 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/. | String | Yes |
Content of
RedirectAllRequestsTo:Node Name (Keyword) | Parent Node | Description | Type | Required |
Protocol | WebsiteConfiguration.RedirectAllRequestsTo | Specifies the target protocol to redirect all requests. Only HTTPS is supported. | String | No |
Content of
AutoAddressing:Node Name (Keyword) | Parent Node | Description | Type | Required |
Status | WebsiteConfiguration.AutoAddressing | Whether to ignore the HTML file extension. Valid values: Enabled, Disabled (default) | String | No |
Content of
ErrorDocument:Node Name (Keyword) | Parent Node | Description | Type | Required |
Key | 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 | String | No |
OriginalHttpStatus | WebsiteConfiguration.ErrorDocument | Configures whether to return the corresponding HTTPS status code if the error documents are hit. Valid values: Enabled (default), Disabled | String | No |
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:Node Name (Keyword) | Parent Node | Description | Type | Required |
RoutingRule | WebsiteConfiguration.RoutingRules | A single routing rule | Container | Yes |
Content of
RoutingRules.RoutingRule:Node Name (Keyword) | Parent Node | Description | Type | Required |
Condition | WebsiteConfiguration.RoutingRules.RoutingRule | Condition for the routing rule | Container | Yes |
Redirect | WebsiteConfiguration.RoutingRules.RoutingRule | Configuration of the redirection target | Container | Yes |
Content of
RoutingRules.RoutingRule.Condition:Node Name (Keyword) | Parent Node | Description | Type | Required |
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. | Integer | Either this parameter or KeyPrefixEquals must be specified. |
KeyPrefixEquals | WebsiteConfiguration.RoutingRules.RoutingRule.Condition | Specifies the object key prefix as the match condition for the routing rule | String | Either this parameter or HttpErrorCodeReturnedEquals must be specified. |
Content of
RoutingRules.RoutingRule.Redirect:Node Name (Keyword) | Parent Node | Description | Type | Required |
Protocol | WebsiteConfiguration.RoutingRules.RoutingRule.Redirect | Specifies the target protocol for the routing rule. Only HTTPS is supported. | String | No |
ReplaceKeyWith | WebsiteConfiguration.RoutingRules.RoutingRule.Redirect | Specifies the target object key to replace the original object key in the request. | String | Either this parameter or ReplaceKeyPrefixWith must be specified. |
ReplaceKeyPrefixWith | 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. | String | Either this parameter or ReplaceKeyWith must be specified. |
URLRedirect | 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. | String | No |
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.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>
Response
HTTP/1.1 200 OKContent-Length: 0Connection: closeDate: Wed, 20 May 2020 09:33:38 GMTServer: tencent-cosx-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.