配置静态网站托管-凯发k8国际娱乐官网入口
用户可将自己的桶配置成静态网站托管模式,并通过桶域名访问该静态网站。
静态网站托管配置会在两分钟内生效。
静态网站托管场景需要设置匿名用户访问权限,当匿名用户访问静态网站文件时,会产生公网流出流量费用和请求费用。
注意事项
基于安全合规要求,华为云对象存储服务obs禁止通过obs的默认域名()使用静态网站托管功能,即使用上述域名从浏览器访问网页类型文件时,不会显示对象内容,而是以附件形式下载。
各区域将自以下两个时间点起生效:
自2022年1月1日起生效:华北-北京一、华北-北京四、华北-乌兰察布一、华东-上海一、华东-上海二、华南-广州、西南-贵阳一
自2022年3月25日起生效:中国-香港、亚太-曼谷、亚太-新加坡、非洲-约翰内斯堡、拉美-墨西哥城一、拉美-墨西哥城二、拉美-圣保罗一、拉美-圣地亚哥
通过自定义域名使用静态网站托管功能不受影响,仍然支持文件内容的直接预览,详情请参见如何在浏览器中在线预览obs中的对象?
如果您的obs桶开启了静态网站托管功能,请在配置cdn加速域名时勾选“静态网站托管”,这样用户访问时就不会显示桶中所有文件列表。
前提条件
静态网站所需的网页文件已上传到指定桶中。
桶内的静态网站文件必须配置为所有用户可访问。
如果静态网站文件为“归档存储”或“深度归档存储”类别,则需要先恢复,具体操作步骤请参见。
操作步骤
- 在obs左侧导航栏选择“桶列表”。
- 在obs管理控制台桶列表中,单击待操作的桶,进入“对象”页面。
- 可选:如果还未将桶内静态网站文件配置为任何用户可访问,请执行本步骤配置所有账户的访问权限。如果已经配置,请跳过此步骤。
参考为所有账号授予静态网站文件的读取权限。
若桶中只有静态网站文件,则配置桶策略为“对象只读”,使桶内所有文件能被公开访问。
- 单击“访问权限控制>桶策略”。
- 单击“创建”。
- 配置桶策略信息。
图1 配置对象只读权限
表1 配置公共读策略参数配置说明 参数
说明
策略配置方式
支持可视化视图和json视图。此处以可视化视图为例,json视图的说明请参见。
策略名称
输入自定义桶策略的名称。
策略内容
效力
允许
被授权用户
被授权用户:所有账号
授权资源
- 资源范围:指定对象
- 资源路径:*(*表示桶内所有对象)
授权操作
- 动作范围:模板配置
- 模板:对象只读
- 单击“创建”,完成桶策略创建。
- 权限配置信息可以在桶策略列表查看。
图2 查看桶策略列表权限配置信息
- 在左侧导航栏,单击“概览”,进入“概览”页面。
- 在“基础配置”区域下,单击“静态网站托管”卡片,系统跳转至“静态网站托管”界面。
或您可以直接在左侧导航栏单击“基础配置>静态网站托管”,进入“静态网站托管”界面。
- 单击“配置静态网站托管”,系统弹出“配置静态网站托管”对话框。
- 打开“状态”开关。
- “托管模式”选择“配置到当前桶”,如图3所示。
图3 配置静态网站托管
- 在“默认凯发k8国际娱乐k8凯发官网入口首页”、“默认404错误页面”中设置默认缺省页面和404(not found)页面。
- 默认凯发k8国际娱乐k8凯发官网入口首页:即访问静态网站时的默认凯发k8国际娱乐k8凯发官网入口首页。当使用obs管理控制台配置静态网站托管时,仅支持“html”格式的网页文件;当使用api的方式配置时,obs不进行限制,用户必须指定对象的“content-type”。
obs仅支持配置桶根目录下的文件(如“index.html”)作为默认凯发k8国际娱乐k8凯发官网入口首页,暂不支持按目录层级的方式(如“/page/index.html”)配置默认凯发k8国际娱乐k8凯发官网入口首页。
- 默认404错误页面:即访问静态网站遇到错误时,obs返回给用户的错误页面。当使用obs管理控制台配置静态网站托管时,仅支持桶根目录下html、jpg、png、bmp、webp格式的文件;当使用api的方式配置时,obs不进行限制,用户必须指定对象的“content-type”。
- 默认凯发k8国际娱乐k8凯发官网入口首页:即访问静态网站时的默认凯发k8国际娱乐k8凯发官网入口首页。当使用obs管理控制台配置静态网站托管时,仅支持“html”格式的网页文件;当使用api的方式配置时,obs不进行限制,用户必须指定对象的“content-type”。
- 可选:在“重定向规则”中配置重定向规则。满足重定向规则的请求将被重定向到指定主机或页面。
“重定向规则”采用json或xml格式编写,可以包含多条重定向规则,每条重定向规则包含一个condition和一个redirect,参数说明如所示。
表2 参数说明 容器
键值
键值说明
condition
keyprefixequals
重定向生效时的对象名前缀。当向对象发送请求时,如果对象名前缀等于这个值,那么重定向生效。
例如:重定向examplepage.html对象的请求,keyprefixequals设为examplepage.html。
httperrorcodereturnedequals
重定向生效时的http错误码。当发生错误时,如果错误码等于这个值,那么重定向生效。
例如:当返回的http错误码为404时重定向到notfound.html,可以将condition中的httperrorcodereturnedequals设置为404,redirect中的replacekeywith设置为notfound.html。
redirect
protocol
重定向请求生效时使用的协议。取值为http或https,如不设置,默认为http。
hostname
重定向请求生效时使用的主机名。如不设置,代表重定向至原请求的hostname。
replacekeyprefixwith
描述重定向请求时使用的对象名前缀,请求中的对象名会将keyprefixequals的内容替换为replacekeyprefixwith的内容。
例如:想把所有对docs(目录下的对象)的请求重定向到documents(目录下的对象),可以将condition中的keyprefixequals设置为docs,redirect中的replacekeyprefixwith设置为documents。那么对于对象名称为"docs/a.html",重定向的结果为"documents/a.html"。
replacekeywith
描述重定向请求时使用的对象名,请求中的整个对象名会被替换为replacekeywith的内容。
例如:想把所有对"docs"目录下的所有对象的请求重定向到"documents/error.html",可以将condition中的keyprefixequals设置为docs,redirect中的replacekeywith设置为"documents/error.html"。那么对于对象名称为"docs/a.html"和"docs/b.html",重定向的结果都为"documents/error.html"。
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/" }, "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/" } } ]
- 示例一:对所有前缀为“folder1/”对象的请求,自动重定向至主机“www.example.com”上前缀为“target.html”的页面,并使用https协议。
- 单击“确定”。
在obs上托管静态网站配置生效后,您可以通过静态网站托管访问域名访问该静态网站。
由于浏览器缓存等原因,您可能需要清除浏览器缓存后才能查看到预期效果。
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨