静态网站是指网站的所有网站资源都由静态内容构成,如HTML、JavaScript、CSS、图片等文件。您可以通过控制台对已经绑定的自定义域名的S3存储桶配置静态网站托管策略
根据配置界面进行相应参数设置,其中必填项:
1、默认首页:该首页是您通过自定义域名访问S3存储桶时,返回S3存储桶首页。如果还开通了子目录首页,则子目录下也应该存在该文件,当然您可以根据自己的路径来自定义该文件的内容。
2、默认404页(但开通子项目首页,且文件404规则为NoSuchKey时,默认404不填)是当浏览器访问S3存储桶中的文件不存在(404)时,返回的错误页面。
S3存储桶必须为公共空间 ,即该存储桶必须是公共读私有写。另外通过S3默认的域名进行访问,会将静态网站以文件的形式进行下载。只有通过绑定S3存储桶的自定义域名来进行访问才会在浏览器渲染显示。
详细工作机制,参考举例说明。
为Bucket开启静态网站托管后,您需要将与默认首页名称相同的文件(例如index.html)上传至目标Bucket,如果Bucket中包含了目录结构prefix/,则目录层级下也必须包含index.html文件。此外,您还需要将与默认404页名称相同的文件(例如error.html)上传至目标Bucket。Bucket的文件结构如下所示:
Bucket├── index.html
├── error.html
├── s3.png
└── prefix/
└── index.htmlCopyErrorSuccess
如果该Bucket绑定了自定义域名example.com,且配置的静态网站默认首页为index.html,默认404页为error.html。则通过自定义域名访问静态网站时,根据是否开通了子目录首页,访问规则如下:
1、未开通子目录首页:
当您访问https://example.com/和https://example.com/prefix/时,S3会返回https://example.com/index.html。
当您访问https://example.com/s3.png时,正常获取s3.png文件。
当您访问https://example.com/helloworld时,因helloworld不存在,S3会返回https://example.com/error.html。
2、已开通子目录首页
当您访问https://example.com/时,S3会返回https://example.com/index.html。
当您访问https://example.com/prefix/时,S3会返回https://example.com/prefix/index.html。
当您访问https://example.com/s3.png时,正常获取s3.png文件。
当您访问https://example.com/helloworld时,因helloworld不存在,S3会根据您设置的文件404规则返回对应信息:
如果文件404规则设置为Redirect(默认值),S3会继续检查helloworld/index.html是否存在。
如果文件存在则返回302,并将访问请求重定向为https://example.com/helloworld/index.html。
如果文件不存在则返回404。
如果文件404规则设置为NoSuchKey,则直接返回404。
如果文件404规则设置为Index,S3会继续检查helloworld/index.html是否存在。
如果文件存在则返回200,并直接返回文件内容。
如果文件不存在则返回404。