对象存储

产品文档

对象存储

帮助中心 > 产品文档 > 对象存储 > 静态网站托管设置

静态网站托管设置

用户将图片、视频、静态页面、客户端脚本等资源上传到对象存储的Bucket后,可以将该Bucket设置为静态托管模式,用户可以为该空间指定默认首页、错误返回页及访问发生错误后的重定向地址。通过该功能,用户就可以将某个Bucket作为一个静态网站来使用。但是,动态网站依赖服务器端处理,包括诸如 PHP、JSP 或 ASP.NET 的服务器端脚本,对象存储无法支持需要服务器端脚本处理的内容。

静态网站托管规则说明

1.静态网站托管规则是Bucket级别的,默认Bucket不开启静态网站托管规则。静态网站托管规则在开启后会对Get Object(获取Object)、Get Bucket(List Objects,获取Object列表)和Head Object(获取Object Metadata)三个操作产生影响,这三个操作的访问行为将发生改变。对静态网站根域名的签名访问,会返回Get Bucket结果。

2.京东云对象存储支持通过OSS服务域名(如oss.cn-north-1.jcloudcs.com)、S3服务域名(s3.cn-north-1.jdcloud-oss.com)和用户自定义域名对Bucket及Object进行访问和操作。在用户未开启和配置静态网站托管规则时,使用上述三种方式访问Bucket下的Object是等效的;在开启配置了静态网站托管规则后,访问开启静态网站托管规则的Bucket下面的资源时,目前只有使用兼容S3服务的域名和自定义域名访问才会支持静态网站托管的业务逻辑,而使用OSS服务域名对该Bucket下的资源进行访问和操作时,行为和未开启静态网站托管之前是一样的,未来标准服务域名也将支持静态网站托管的业务逻辑。

3.开启静态网站托管规则后,用户可以配置自定义索引页、自定义错误页以及错误重定向地址:

  • 索引文件是当对网站的根或任何子目录发出请求时返回的网页,通常被命名为 index.html(也可命名为其他名字)。对象存储的静态网站托管提供自定义Index 索引文件,通过Bucket的兼容S3服务域名或自定义域名访问Bucket下访问任何一级目录并不带文件指向时(即URL 地址以 / 为结尾的),会优先按照自定义的索引文件名,在当前目录下进行匹配,看该目录下是否存在设置的自定义索引文件(如Index.html),如果文件不存在,则返回对象存储提供的默认错误页。

  • 错误页面是当用户访问该静态网站时,如果遇到HTTP 4XX(400、403、404等)错误时(最典型的是404 “NOT FOUND”错误),对象存储返回给用户的错误页面。对象存储的静态网站托管功能提供设置自定义错误文件,通过Bucket的兼容S3服务域名或自定义域名访问Bucket内的任何文件出现4XX错误时,会按照自定义错误文件中指定的文件路径和文件名去做匹配,(如error.html,img\error.html,自定义错误文件不必须是error.html,可使用任意对象存储支持的文件名命名),若在对应的路径下找到该文件,则返回自定义的错误文件;若未匹配到配置的自定义错误文件,则返回对象存储提供的默认错误页。

  • 此外,用户还可以设置当遇到HTTP 4XX错误时,可以将访问以302重定向的方式将请求发到用户指定的源站,一旦用户配置了错误重定向的功能,遇到对应的错误时将优先跳转到重定向的地址,而不再展示配置过的自定义错误页。

4.Bucket开启了静态网站托管规则前,访问Bucket下的文件夹(即格式为http://bucketname.s3.cn-north-1.jdcloud-oss.com/test/ )时,会对访问目标进行下载操作,即将test/作为一个对象下载到本地;而开启静态网站托管规则后,使用兼容S3服务域名或自定义域名访问文件夹时,将不会执行下载操作,会按照静态网站托管的处理逻辑进行处理;若要在开启静态网站托管规则后下载文件夹,必须通过在S3服务域名或自定义域名后的URL后面加上?x-oss-process=download来进行强制下载(例:http://bucketname.s3.cn-north-1.jdcloud-oss.com/test/?x-oss-process=download

控制台相关操作:

1.登入控制台->对象存储->空间管理->进入某个Bucket->基础设置,导航至“静态网站托管”功能区域。

2.功能区域内相关配置项说明如下:

a.自定义INDEX页:用户自定义的Index文件,当用户访问Bucket的根目录或某个文件夹没有指定具体文件时所跳转到的Index页:

  • 默认为空,为空就代表目前没有启用Index页的配置。

  • 允许输入任何文件格式(如果该文件格式浏览器无法识别和打开,则浏览器会把不识别的文件进行下载处理,此行为为浏览器行为),不允许输入/。

  • 最大输入长度不超过1022个字节。

  • 将一个Bucket设置成静态网站托管模式时,自定义的Index文件必须是该Bucket内的一个Object,大小写必须完全匹配,如设定条件为index.html,但Bucket下仅有Index.html无index.html,是无法返回到自定义的页面的。

b.自定义错误页:用户自定义的错误文件,当用户访问Bucket遇到4XX错误时所跳转到的错误页:

  • 默认值为空,为空就代表目前没有启用错误页的配置。

  • 允许输入任何文件格式(如果该文件格式浏览器无法识别和打开,则视为该配置无效),不允许输入/。

  • 最大输入长度不超过1022个字节。

  • 将一个Bucket设置成静态网站托管模式时,自定义的错误文件必须是该Bucket内的一个Object,大小写必须完全匹配,可以为根目录下的某个文件也可以是位于某文件夹下的文件,如error.html或testFolder\error.html。

c.访问重定向配置:用户配置的当访问Bucket遇到4XX错误时所重定向的用户源站:

  • 优先级高于“自定义错误页”,可以指定400、403或404错误的重定向地址,当配置了重定向地址后,若遇到对应的错误时则重定向到配置的对应地址,而对于未配置重定向的地址,遇到4XX错误时则返回自定义错误页,如果自定义错误页也未配置,则返回对象存储提供的默认错误页。

  • 默认值为空,为空就代表目前没有重定向的配置。

  • 最大输入长度理论不超过1022个字节(即必须符合对象存储的文件命名规范)。

  • 只允许输入完整的域名或IP格式(需要做输入格式检查)如https://www.test.comhttp://192.168.1.10:8080 ,可带端口号(端口号非必须),不支持通配符*。

  • 除了标准的域名格式,也支持指向域名下的某子目录,如http://www.test.com/img/http://www.test.com/img

  • 若URL中含有Query请求参数,则重定向到用户源站时,Query内容会随着URL一并重定向到源站,但若用户源站无法识别解析Query内容,则之前Query中的附带功能不会在用户源站生效。如:http://s3.cn-north-1.jdcloud-oss.com/downloads/example.jpg?x-oss-process=img/s/200/300 ,在访问时遇到404错误,example.jpg后面跟的图片样式会跟着URL重定向回用户源站,但用户源站若无法识别该图片样式,则返回内容由用户源站的行为决定。

3.当修改了静态网站托管中的配置内容,并点击“保存设置”后,若提交的变更内容中有一项不为空,即视为启用了静态网站托管的功能;若提交的变更内容由非空变为全空,即视为静态网站托管的功能从启用变为停用;未做任何修改时,“保存设置”按钮不可点击。

细节说明:

a.静态网站托管逻辑中自定义Index页的配置仅对具备“公有读”权限的Bucket生效(公有读Bucket可以理解为“公有读私有写”、“公有读写”以及“自定义权限”中配置了全部用户具有GetObject权限的Bucket);

b.若对非“公有读”权限的Bucket配置了静态网站托管规则,自定义Index页的配置将不会生效;在访问该Bucket的过程中遇到4XX错误(如因访问权限原因遇到403)时,处理规则同“公有读”权限的Bucket,即如果配置了重定向地址,则遇到对应的错误时重定向到配置的对应地址,而对于未配置重定向的地址,遇到4XX错误时则返回自定义错误页,如果自定义错误页也未配置,则返回对象存储提供的默认错误页。

更新时间:2020-06-30 16:55:05