您可以通过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;',只要您的浏览器支持该类型文件的预览,可以直接预览文件内容。绑定自定义域名步骤请参见绑定自定义域名
  • 配置静态网站托管的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状态码。
      • NoSuckKey:直接返回默认404页。若默认404页也不存在,则返回404状态码。
      • Index:检查object/默认首页是否存在。
        • 若存在,直接返回这个文件内容。
        • 若不存在,则返回默认404页。若默认404页也不存在,则返回404状态码。

操作方式

操作方式 说明
控制台 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页对应的文件,对此返回的流量和请求将会计费。

更多参考

教程示例:使用自定义域名设置静态网站托管