您可以通过 OSS API 的 PutBucketWebsite 接口将自己的存储空间配置成静态网站托管模式,并通过存储空间域名访问该静态网站。

注意
  • 出于安全考虑,自 2018 年 8 月 13 日起,若您使用 OSS 默认域名访问中国大陆、中国香港地区 OSS 上的网页类型文件(mimetype 为 text/html,扩展名包括 htm、html、jsp、plg、htx、stm),Response Header 中会自动加上 Content-Disposition:'attachment=filename;'。即从浏览器访问网页类型文件时,不会显示文件内容,而是以附件形式进行下载。若使用自有域名访问 OSS ,Response Header 中不会加上 Content-Disposition:'attachment=filename;'。所以建议您在 OSS 上绑定自定义域名,并使用自定义域名访问托管的网站,详情请参见绑定自定义域名
  • 配置静态网站托管的 API 详细接口信息请参考PutBucketWebsite

静态网站托管配置生效后,假如这个 Bucket 在杭州,那么这个静态网站的访问域名为:

http://<Bucket>.oss-cn-hangzhou.aliyuncs.com/

为了使您更方便地管理在 OSS 上托管的静态网站,OSS 支持两种功能:

  • 静态页面支持(Index Document Support)

    静态页是指当用户直接访问静态网站根域名时,OSS 返回的默认静态页(相当于网站的 index.html)。如果您为一个 Bucket 配置了静态网站托管模式,就必须指定一个静态页。

  • 错误页面支持(Error Document Support)

    错误页面是指在用户访问该静态网站时,如果遇到 HTTP 4XX 错误时(最典型的是 404 NOT FOUND 错误),OSS 返回给用户的错误页面。通过指定错误页面,您可以为您的用户提供恰当的出错提示。

例如:设置索引页面为 index.html,错误页面为 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

操作方式

操作方式 说明
控制台 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 的静态网站,可以通过绑定自定义域名来实现。
  • 将一个 Bucket 设置成静态网站托管模式时:
    • 索引页面是必须指定的,错误页面是可选的。
    • 指定的索引页面和错误页面必须是该 Bucket 内的 Object。
    说明 若您的存储空间为归档类型,需保证这两个 Object 为标准存储,或处于解冻状态,否则会导致静态网页无法被访问。
  • 将一个 Bucket 设置成静态网站托管模式后:
    • 对静态网站根域名的匿名访问,OSS 将返回索引页面;对静态网站根域名的签名访问,OSS 将返回 GetBucket 结果。
    • 访问静态网站根域名或者访问不存在的 Object 时,OSS 会返回给用户设定的 Object,对此返回的流量和请求将会计费。

更多参考

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