跳到主要内容

PutBucketWebsite

PutBucketWebsite操作可以将一个Bucket设置成静态网站托管模式。

请求语法

PUT /?website HTTP/1.1
Date: GMT Date
Content-Type: application/json
Content-Length:ContentLength
Host: bucketname.cos.chinac.com
Authorization: SignatureValue

{
"IndexDocument":{"Suffix":"index.html"},
"ErrorDocument":{"Key":"errorDocument.html"}
}

请求元素

NameTypeDescription
ErrorDocumentObject子元素Key的父元素
IndexDocumentObject子元素Suffix的父元素
KeyString返回404错误时使用的文件名
SuffixString返回主页URL时添加的索引文件名

细节分析

  1. 所谓静态网站是指所有的网页都由静态内容构成,包括客户端执行的脚本,例如JavaScript;COS不支持涉及到需要服务器端处理的内容,例如PHP,JSP,APS.NET等
  2. 索引文档是指当用户直接访问静态网站根域名时,COS返回的默认索引文档(相当于网站的index.html)。如果你为一个Bucket配置了静态网站托管模式,就必须指定一个索引文档
  3. 错误页面支持(Error Document Support) 错误文档是指在用户访问该静态网站时,如果遇到404 NOT FOUNT错误,COS返回给用户的错误页面。通过指定错误页面,你可以为你的用户提供恰当的出错提示。
  4. 用户将一个Bucket设置成静态网站托管模式时,指定的索引页面和错误页面是该Bucket内的对象
  5. 如果用户上传了Content-MD5请求头,COS会计算body的Content-MD5并检查一致性,如果不一致,将返回InvalidDigest错误码
  6. 用户在将一个Bucket设置成静态网站托管模式后,用户想要查看到设置的静态网站托管效果需要访问website域名,如bucketname.cos-website.chinac.com,如访问默认域名cos.chinac.com返回不变,和接口描述一致

举例说明

场景一:用户设置了索引页面支持为index.html, 错误页面支持为error.html,且index和error页面为桶内对象。Bucket为cos-example,Endpoint为cos-cn-suzhou.chinac.com
用户访问http://cos-example.cos-cn-suzhou.chinac.com,返回GetBucket结果
用户访问http://cos-example.cos-cn-suzhou-website.chinac.com,返回index.html
用户访问http://cos-example.cos-cn-suzhou.chinac.com/object,如果object不存在,返回404 NoSuchKey
用户访问http://cos-example.cos-cn-suzhou-website.chinac.com/object,如果object不存在,返回error.html
场景二:用户设置了索引页面支持为index.html,且上传/dir/index.html为桶内对象。Bucket为cos-example,Endpoint为cos-cn-suzhou.chinac.com
用户访问http://cos-example.cos-cn-suzhou.chinac.com/dir/,返回dir/空目录
用户访问http://cos-example.cos-cn-suzhou-website.chinac.com/dir/,返回上传的index.html内容

注意:URL末尾的斜线。

请求示例

同时设置index和error页面

请求示例

PUT /?website HTTP/1.1
Host: test-bucket.cos.chinac.com
Content-Length: 209
Date: Fri, 04 May 2012 03:21:12 GMT
Authorization: COS qn6qrrqxo2oawuk53otfjbyc:KU5h8YMUC78M30dXqf3JxrTZHiA=

{
"IndexDocument":{"Suffix":"index.html"},
"ErrorDocument":{"Key":"errorDocument.html"}
}

返回示例

HTTP/1.1 200 OK
x-cos-request-id: 534B371674E88A4D8906008B
Date: Fri, 04 May 2012 03:21:12 GMT
Content-Length: 0
Connection: keep-alive
Server: COS

只设置index页面

请求示例

PUT /?website HTTP/1.1
Host: test-bucket.cos.chinac.com
Content-Length: 209
Date: Fri, 04 May 2012 03:21:12 GMT
Authorization: COS qn6qrrqxo2oawuk53otfjbyc:KU5h8YMUC78M30dXqf3JxrTZHiA=

{
"IndexDocument":{"Suffix":"index.html"},
"ErrorDocument":{"Key":" "}
}

返回示例

HTTP/1.1 200 OK
x-cos-request-id: 534B371674E88A4D8906008B
Date: Fri, 04 May 2012 03:21:12 GMT
Content-Length: 0
Connection: keep-alive
Server: COS