静态网站是指所有的网页都由静态内容构成,包括客户端执行的脚本(例如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
。
- 如果文件404规则设置为Redirect(默认值),OSS会继续检查object/index.html是否存在。如果文件存在则返回302,并将访问请求重定向为
- 当您访问
操作方式
操作方式 | 说明 |
---|---|
控制台 | Web应用程序,直观易用 |
Java SDK | 丰富、完整的各类语言SDK demo |
Python SDK | |
PHP SDK | |
Go SDK | |
C SDK | |
.NET SDK | |
Node.js SDK | |
Ruby SDK |
更多参考
您可以通过存储空间(Bucket)托管静态网站,并让访问者通过Bucket绑定的自定义域名(例如example.com)访问您的网站。具体操作,请参见使用自定义域名设置静态网站托管。