用户可将自己的桶配置成静态网站托管模式,并通过桶域名访问该静态网站。
静态网站托管配置会在两分钟内生效。
说明
静态网站托管场景需要设置匿名用户访问权限,当匿名用户访问静态网站文件时,会产生公网流 出流量费用和请求费用。
注意事项
基于安全合规要求,华为云对象存储服务OBS禁止通过OBS的默认域名(桶访问域名 或静态网站访问域名)使用静态网站托管功能,即使用上述域名从浏览器访问网页类 型文件时,不会显示对象内容,而是以附件形式下载。
各区域将自以下两个时间点起生效:
自2022年1月1日起生效:华北-北京一、华北-北京四、华北-乌兰察布一、华东-上海 一、华东-上海二、华南-广州、西南-贵阳一
自2022年3月25日起生效:中国-香港、亚太-曼谷、亚太-新加坡、非洲-约翰内斯堡、
拉美-墨西哥城一、拉美-墨西哥城二、拉美-圣保罗一、拉美-圣地亚哥
通过自定义域名使用静态网站托管功能不受影响,仍然支持文件内容的直接预览,详 情请参见如何在浏览器中在线预览OBS中的对象?
前提条件
静态网站所需的网页文件已上传到指定桶中。
桶内的静态网站文件必须配置为匿名用户可访问。
如果静态网站文件为“归档存储”类别,则需要先恢复,具体操作步骤请参见恢复归 档存储文件。
控制台指南 21 静态网站托管
操作步骤
步骤1 在OBS管理控制台左侧导航栏选择“桶列表”。
步骤2 在桶列表单击待操作的桶,进入“概览”页面。
步骤3 可选:如果还未将桶内静态网站文件配置为匿名用户可访问,请执行本步骤配置匿名 访问权限。如果已经配置,请跳过此步骤。
参考对匿名用户授予指定对象的公共读权限为匿名用户授予静态网站文件的读取权 限。
若桶中只有静态网站文件,则配置桶策略为“公共读”,使桶内所有文件能被公开访 问。
1. 单击“访问权限控制>桶策略”。
2. 单击“创建”。
3. 单击“公共读”模板右侧的“使用模板创建”。
图21-1 配置公共读权限
4. 无需修改桶策略模板内容,直接单击“配置确认”后再单击“创建”,完成桶策 略创建。
步骤4 在“基础配置”下,单击“静态网站托管”卡片,系统跳转至“静态网站托管”界 面。
或您可以直接在左侧导航栏单击“基础配置>静态网站托管”,进入“静态网站托管”
界面。
步骤5 单击“配置静态网站托管”,系统弹出“配置静态网站托管”对话框。
步骤6 “状态”设置为使能状态。
步骤7 “托管模式”选择“配置到当前桶”,如图21-2所示。
控制台指南 21 静态网站托管
图21-2 配置静态网站托管
步骤8 在“默认首页”、“默认404错误页面”中设置默认缺省页面和404(Not Found)页 面。
● 默认首页:即访问静态网站时的默认首页。当使用OBS管理控制台配置静态网站 托管时,仅支持“html”格式的网页文件;当使用API的方式配置时,OBS不进行 限制,用户必须指定对象的“Content-Type”。
OBS仅支持配置桶根目录下的文件(如“index.html”)作为默认首页,暂不支持 按目录层级的方式(如“/page/index.html”)配置默认首页。
● 默认404错误页面:即访问静态网站遇到错误时,OBS返回给用户的错误页面。当 使用OBS管理控制台配置静态网站托管时,仅支持桶根目录下html、jpg、png、
bmp、webp格式的文件;当使用API的方式配置时,OBS不进行限制,用户必须 指定对象的“Content-Type”。
步骤9 可选:在“重定向规则”中配置重定向规则。满足重定向规则的请求将被重定向到指 定主机或页面。
“重定向规则”采用JSON或XML格式编写,可以包含多条重定向规则,每条重定向规 则包含一个Condition和一个Redirect,参数说明如所示。
控制台指南 21 静态网站托管
表21-1 参数说明
容器 键值 键值说明
Condition KeyPrefixEquals 重定向生效时的对象名前缀。当向对象发送 请求时,如果对象名前缀等于这个值,那么
urnedEquals 重定向生效时的HTTP错误码。当发生错误 时,如果错误码等于这个值,那么重定向生
Redirect Protocol 重定向请求生效时使用的协议。取值为http 或https,如不设置,默认为http。
HostName 重定向请求生效时使用的主机名。如不设 置,代表重定向至原请求的HostName。
ReplaceKeyPrefix
With 重定向请求生效时使用的对象名前缀。
ReplaceKeyWith 重定向请求生效时使用的对象名。
HttpRedirectCode 响应中的HTTP状态码。默认值为301,表示 永久重定向到Redirect指定的位置,也可根据 业务实际情况设置。
重定向规则示例
● 示例一:对所有前缀为“folder1/”对象的请求,自动重定向至主机
“www.example.com”上前缀为“target.html”的页面,并使用https协议。
[ {
"Condition": {
"KeyPrefixEquals": "folder1/"
}, "Redirect":{
"Protocol": "https",
"HostName": "www.example.com", "ReplaceKeyPrefixWith": "target.html"
} } ]
● 示例二:对所有前缀为“folder2/”对象的请求,自动重定向至本OBS桶中前缀为
“folder/”的对象上。
[ {
"Condition": {
"KeyPrefixEquals": "folder2/"
控制台指南 21 静态网站托管
}, "Redirect":{
"ReplaceKeyPrefixWith": "folder/"
} } ]
● 示例三:对所有前缀为“folder.html”对象的请求,自动重定向至本OBS桶的
“folderdeleted.html”对象上。
[ {
"Condition": {
"KeyPrefixEquals": "folder.html"
}, "Redirect":{
"ReplaceKeyWith": "folderdeleted.html"
} } ]
● 示例四:在未找到请求对象返回HTTP状态码404时,自动重定向至主机
“www.example.com”上前缀为“report-404/” 的页面。
例如,如果您请求页面ExamplePage.html,且它导致了HTTP 404错误,该请求 将重定向至www.example.com上的report-404/ExamplePage.html页面。如果没 有设置404的重定向规则,在发生HTTP 404错误时将返回上一步中配置的默认 404错误页面。
[ {
"Condition": {
"HttpErrorCodeReturnedEquals": "404"
}, "Redirect":{
"HostName": "www.example.com", "ReplaceKeyPrefixWith": "report-404/"
}