静态网站是指所有的网页都由静态内容构成,包括客户端执行的脚本(例如JavaScript)。您可以通过静态网站托管功能将您的静态网站托管到OSS的存储空间(Bucket),并使用Bucket的访问域名访问这个网站。

说明 配置静态网站托管的API详细信息,请参见 PutBucketWebsite

使用说明

配置静态网站托管时,您需要指定网站的默认首页和默认404页:
  • 默认首页是您通过浏览器访问静态网站域名时,OSS返回的网站首页。

    您为默认首页指定的文件必须是Bucket根目录下允许被匿名访问的文件。如果您还开通了子目录首页,则子目录下也应存在此文件。

  • 默认404页是您通过浏览器访问Bucket内文件出现404错误时,OSS返回的错误页面。

    您为默认404页指定的文件必须是Bucket根目录下允许被匿名访问的文件。

您可以通过将默认首页或者默认404页中指定文件的读写权限ACL设置为public-read,确保该文件允许匿名访问。有关设置文件读写权限ACL的具体步骤,请参见文件ACL

静态网站配置完成后,如果您使用Bucket默认域名访问静态网站时,会将静态网站以文件的形式下载到本地。如需确保访问静态网站是预览行为,您必须为Bucket绑定自定义域名,并通过自定义域名访问您的静态网站。绑定自定义域名步骤,请参见绑定自定义域名

配置示例

为Bucket开启静态网站托管后,您需要将与默认首页名称相同的文件(例如index.html)上传至目标Bucket,如果Bucket中包含了目录结构subdir/,则目录层级下也必须包含index.html文件。此外,您还需要将与默认404页名称相同的文件(例如error.html)上传至目标Bucket。Bucket的文件结构如下所示:
Bucket
 ├── index.html
 ├── error.html
 ├── example.txt
 └── subdir/
      └── index.html
如果该Bucket绑定了自定义域名 example.com,且配置的静态网站默认首页为 index.html,默认404页为 error.html。则通过自定义域名访问静态网站时,根据是否开通了子目录首页,访问规则如下:
  • 未开通子目录首页
    • 当您访问https://example.com/https://example.com/subdir/时,OSS会返回https://example.com/index.html
    • 当您访问https://example.com/example.txt时,正常获取example.txt文件。
    • 当您访问https://example.com/object时,因object不存在,OSS会返回https://example.com/error.html
  • 已开通子目录首页
    • 当您访问https://example.com/时,OSS会返回https://example.com/index.html
    • 当您访问https://example.com/subdir/时,OSS会返回https://example.com/subdir/index.html
    • 当您访问https://example.com/example.txt时,正常获取example.txt文件。
    • 当您访问https://example.com/object时,因object不存在,OSS会根据您设置的文件404规则返回对应信息:
      • 如果文件404规则设置为Redirect(默认值),OSS会继续检查object/index.html是否存在。如果文件存在则返回302,并将访问请求重定向为https://example.com/object/index.html;如果文件不存在则返回404,并继续检查https://example.com/error.html
      • 如果文件404规则设置为NoSuchKey,则直接返回404,并继续检查https://example.com/error.html
      • 如果文件404规则设置为Index,OSS会继续检查object/index.html是否存在。如果文件存在则返回200,并直接返回文件内容。如果文件不存在,则继续检查https://example.com/error.html

操作方式

操作方式 说明
控制台 Web应用程序,直观易用
Java SDK 丰富、完整的各类语言SDK demo
Python SDK
PHP SDK
Go SDK
C SDK
.NET SDK
Node.js SDK
Ruby SDK

更多参考

您可以通过存储空间(Bucket)托管静态网站,并让访问者通过Bucket绑定的自定义域名(例如example.com)访问您的网站。具体操作,请参见使用自定义域名设置静态网站托管