静态网站托管
您可以通过OSS API的PutBucketWebsite接口将自己的存储空间配置成静态网站托管模式,并通过存储空间绑定的自定义域名访问该静态网站。
注意
- 出于安全考虑,中国区域自2018年8月13日起,中国以外区域自2019年9月25日起,通过浏览器访问OSS上网页类型文件(mimetype 为text/html,扩展名包括 htm、html、jsp、plg、htx、stm):
- 使用OSS默认域名访问时,Response Header中会自动加上
Content-Disposition:'attachment=filename;'
。即从浏览器访问网页类型文件时,不会显示文件内容,而是以附件形式进行下载。 - 使用绑定的自定义域名访问OSS时,Response Header中不会加上
Content-Disposition:'attachment=filename;'
,只要您的浏览器支持该类型文件的预览,可以直接预览文件内容。绑定自定义域名步骤请参见绑定自定义域名。
- 使用OSS默认域名访问时,Response Header中会自动加上
- 配置静态网站托管的API详细信息请参见PutBucketWebsite。
为了使您更方便地管理在OSS上托管的静态网站,OSS支持以下功能:
- 静态页面支持(Index Document Support)
静态页是指当用户直接访问静态网站域名时,OSS 返回的默认静态页(相当于网站的 index.html)。如果您为一个 Bucket 配置了静态网站托管模式,就必须指定一个静态页。
- 错误页面支持(Error Document Support)
错误页面是指在用户访问该静态网站时,如果遇到 HTTP 4XX 错误时(最典型的是 404 NOT FOUND 错误),OSS 返回给用户的错误页面。通过指定错误页面,您可以为您的用户提供恰当的出错提示。
例如设置默认首页为index.html,默认404页为error.html,Bucket为oss-sample,Endpoint为oss-cn-hangzhou.aliyuncs.com,那么:
- 若未开通子目录首页
- 用户访问
http://oss-sample.oss-cn-hangzhou.aliyuncs.com/
和http://oss-sample.oss-cn-hangzhou.aliyuncs.com/directory/
的时候,相当于访问http://oss-sample.oss-cn-hangzhou.aliyuncs.com/index.html
。 - 用户访问
http://oss-sample.oss-cn-hangzhou.aliyuncs.com/object
的时候,如果object不存在,OSS会返回http://oss-sample.oss-cn-hangzhou.aliyuncs.com/error.html
。
- 用户访问
- 若已开通子目录首页
- 用户访问
http://oss-sample.oss-cn-hangzhou.aliyuncs.com/
的时候,相当于访问http://oss-sample.oss-cn-hangzhou.aliyuncs.com/index.html
。 - 用户访问
http://oss-sample.oss-cn-hangzhou.aliyuncs.com/directory/
的时候,相当于访问http://oss-sample.oss-cn-hangzhou.aliyuncs.com/directory/index.html
。 - 用户访问
http://oss-sample.oss-cn-hangzhou.aliyuncs.com/object
的时候,如果object不存在,OSS会根据设置的文件404规则返回对应信息。文件404规则可选值如下:- Redirect(默认值):检查object/默认首页文件是否存在。
- 若存在,返回302状态码,Location头为
oss-sample.oss-cn-hangzhou.aliyuncs.com/object/
。 - 若不存在,返回默认404页。若默认404页也不存在,则返回404状态码。
- 若存在,返回302状态码,Location头为
- NoSuckKey:直接返回默认404页。若默认404页也不存在,则返回404状态码。
- Index:检查object/默认首页是否存在。
- 若存在,直接返回这个文件内容。
- 若不存在,则返回默认404页。若默认404页也不存在,则返回404状态码。
- Redirect(默认值):检查object/默认首页文件是否存在。
- 用户访问
操作方式
操作方式 | 说明 |
---|---|
控制台 | Web应用程序,直观易用 |
Java SDK | 丰富、完整的各类语言SDK demo |
Python SDK | |
PHP SDK | |
Go SDK | |
C SDK | |
.NET SDK | |
Node.js SDK | |
Ruby SDK |
细节分析
- 所谓静态网站是指所有的网页都由静态内容构成,包括客户端执行的脚本,例如JavaScript。OSS不支持涉及到需要服务器端处理的内容,例如PHP,JSP,ASP.NET等。
- 将一个Bucket设置成静态网站托管模式时:
- 索引页面是必须指定的,错误页面是可选的。
- 若未开通子目录首页,需保证根目录下有默认首页和默认404页对应的文件,且文件可读。
- 若开通子目录首页,需保证根目录和子目录下有默认首页文件,根目录下有默认404页文件,且文件可读。
说明 默认首页仅可以设置一个,若需要使用子目录首页,则子目录下的首页文件需要与根目录下的首页文件名称相同,但内容可以不同。 - 将一个 Bucket 设置成静态网站托管模式后:
- 对静态网站域名的匿名访问,OSS将返回索引页面;对静态网站根域名的签名访问,OSS 将返回GetBucket结果。
- 访问不存在的Object时,OSS会返回给用户设定的默认404页对应的文件,对此返回的流量和请求将会计费。
更多参考
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论