云服务器内容精选

  • 应用场景 一般情况下,用户会通过OBS提供的桶访问 域名 (例如https://bucketname.obs.cn-north-4.myhuaweicloud.com)或者绑定的自定义域名来访问OBS。 但在某些场景下,用户需要通过固定的IP地址访问OBS,例如:某些企业出于安全考虑,对于可访问的外部地址需要设置黑白名单,而这个时候对于OBS的访问则需要一个固定的IP地址。同样出于安全考虑,华为云OBS桶访问域名通过DNS解析的IP地址是会发生变化的,所以用户无法获取某个桶长期有效的固定IP地址。 此时,可以通过在E CS 上搭建Nginx反向代理服务器,来实现通过固定IP地址访问OBS。
  • 与其他功能的关系 功能 静态网站托管与该功能的关系 参考文档 跨域资源共享 默认情况下,托管在OBS的静态网站仅允许响应同域网站的访问请求。通过对保存静态网站资源的OBS桶进行跨域资源共享配置,可以实现跨域访问功能。 跨域资源共享 自定义域名配置 OBS支持通过自定义域名访问托管在OBS上的静态网站,用户无需修改网站代码,即可使用原域名访问网站。 自定义域名配置 使用自定义域名托管静态网站 CDN加速 默认情况下,用户访问托管在OBS的静态网站是通过URL直接从OBS请求数据。一般情况下文件只存储在一个区域,不同区域的用户访问OBS的响应速度存在差异。在需要频繁访问的场景下,直接访问OBS来获取相应文件,还会消耗大量的流量费用。为提升用户访问体验,且降低存储成本,可以选择通过CDN加速访问静态网站。 CDN加速 使用自定义域名托管静态网站 通过CDN加速访问OBS 防盗链 用户将网站托管在OBS后,为了防止网站数据被其他人盗链,OBS支持基于HTTP header中表头字段referer的防盗链方法。 防盗链
  • 索引文档支持 索引文档是当对网站的根或任何子文件夹发出请求时返回的网页。例如,如果用户在浏览器中输入http://www.example.com,则该用户没有请求任何特定页面。在这种情况下,OBS将提供索引文档,该文档有时也称为默认页面。 当您将您的桶配置为网站时,您应该提供索引文档的名称。您必须上传具有此名称的对象并将其配置为公开可读。 根级URL的尾部斜杠是可选的。例如,如果您将具有index.html的网站配置为索引文档,以下任意一个URL将返回index.html。 http://bucketname.obs-website.example.com/ http://bucketname.obs-website.example.com 在OBS中,对象在桶中是水平存储的;它不会像计算机上的文件系统那样提供任何分层组织。您可以通过使用表示文件夹结构的对象名称创建逻辑层级结构。例如,考虑具有三个对象的桶和以下对象名。 sample1.jpg photos/2006/Jan/sample2.jpg photos/2006/Feb/sample3.jpg 虽然它们没有按任何物理分层组织进行存储,但您可以从对象名推断以下逻辑文件夹结构。 sample1.jpg对象位于桶的根级 sample2.jpg对象位于photos/2006/Jan子文件夹中。 sample3.jpg对象位于photos/2006/Feb子文件夹中。
  • 自定义错误文档支持 表1列出了发生错误时OBS返回的HTTP响应代码的子集。 表1 错误码列表 HTTP错误代码 说明 301 永久移动 当用户将请求直接发送到OBS网站终端节点时,OBS返回301 Moved Permanently (301 永久移动)响应。 302 Found (302 已找到) 当OBS收到对不包含尾部斜杠的键x的请求时,它首先查找键名称为x的对象。如果未找到对象,则OBS确定该请求是针对子文件夹x发出的,并通过在末尾添加斜杠重定向请求并返回302 Found (302 已找到)。 304 Not Modified (304 未修改) OBS用户请求标头If-Modified-Since、If-Unmodified-Since以确定所请求的对象是否与客户端保存的缓存副本相同。如果对象相同,网站终端节点将返回304 Not Modified响应。 403 禁止访问 当用户请求转换为不可公开读取的对象时,网站终端节点的响应包含403 Forbidden。对象所有者必须使用桶策略或ACL使该对象公开可读。 404 未找到 由于以下原因,网站终端节点的响应包含404 Not Found: OBS确定网站URL引用了不存在的对象键 OBS推断该请求针对不存在的索引文档 在URL中指定的桶不存在 在URL中指定的桶存在,但它未配置为网站 您可以创建为404 Not Found返回的自定义文档。确保该文档已上传到配置为网站的桶,且网站托管配置已设置为使用该文档。 500 Service Error 当出现内部服务器错误时,网站终端节点的响应包含500 Service Error。 503 服务不可用 当OBS确定您需要降低请求频率时,网站终端节点的响应包含503 Service Unavailable (503 服务不可用)。
  • 使用场景 OBS服务允许在桶上托管静态网站,支持索引页、错误页展示和页面跳转。您可以将静态网站文件上传至OBS的桶中,并对这些文件赋予匿名用户可读权限,然后将该桶配置成静态网站托管模式,就可以实现在OBS上托管静态网站了。 静态网站通常仅包含静态网页,以及可能包含部分可在客户端运行的脚本,如JavaScript、Flash等。相比之下,动态网站则依赖于服务器端处理脚本,包括PHP、JSP或ASP.Net等。OBS当前尚不支持服务器端运行脚本。 图1 静态网站示意图 在设置了静态网站托管后,有以下两种方式访问OBS。 资源管理方式:资源管理方式通过普通的域名访问OBS。您可以使用API及SDK方式,结合带有终端节点(Endpoint)的OBS默认域名,实现普通的上传、下载、删除、列举等桶和对象操作。 静态网站方式:静态网站方式通过特定的域名访问OBS。使用静态网站访问时,根据配置好的域名托管规则,实现访问目录的索引页、错误页展示和访问页面资源的跳转。 修改静态网站托管设置后会在两分钟内生效,静态网站托管设置生效后,用户可以通过如下形式的网址访问静态资源: https://静态网站访问域名/对象名 http://静态网站访问域名/对象名 其中静态网站访问域名的结构为:BucketName.obs-website.Endpoint,其中BucketName为桶名,Endpoint为终端节点,各区域的终端节点详情请参见地区和终端节点。例如您想使用静态访问域名访问位于华北-北京四的名为testbucket桶,华北-北京四的Endpoint为cn-north-4.myhuaweicloud.com,则此时对应的静态网站访问域名应该为testbucket.obs-website.cn-north-4.myhuaweicloud.com。 尽量避免目标桶名中带有“.”,否则通过HTTPS访问时可能出现客户端校验证书出错。 为了使您的客户可以访问网站终端节点上的内容,您必须使您的所有内容公开可读。这样,您可以使用对象上的桶策略或ACL来授予必要的权限。 资源管理方式和静态网站方式之间的主要差异如下: 主要差异 资源管理方式 静态网站方式 访问控制 同时支持公共内容和私有内容 仅支持公开可读的内容 错误消息处理 返回XML格式的错误响应 返回HTML文档 重定向支持 不适用 同时支持对象级和桶级重定向 支持的请求 支持所有桶和对象操作 仅支持对象上的GET和HEAD请求 对桶根级的GET和HEAD请求的响应 返回桶中对象key的列表 返回配置中指定的索引文档
  • 注意事项 基于安全合规要求,华为云 对象存储服务 OBS禁止通过OBS的默认域名(桶访问域名或静态网站访问域名)使用静态网站托管功能,即使用上述域名从浏览器访问网页类型文件时,不会显示对象内容,而是以附件形式下载。 各区域将自以下两个时间点起生效: 自2022年1月1日起生效:华北-北京一、华北-北京四、华北-乌兰察布一、华东-上海一、华东-上海二、华南-广州、西南-贵阳一 自2022年3月25日起生效:中国-香港、亚太-曼谷、亚太-新加坡、非洲-约翰内斯堡、拉美-墨西哥城一、拉美-墨西哥城二、拉美-圣保罗一、拉美-圣地亚哥 通过自定义域名使用静态网站托管功能不受影响,仍然支持文件内容的直接预览。详情请参见如何在浏览器中在线预览OBS中的对象?
  • 重定向简介 在使用静态网站托管功能时,OBS还支持配置重定向请求,即您可以将特定的请求或所有请求实施重定向。 当网站结构调整、网站地址变化或者网站的扩展名发生变化时,用户使用旧的网站地址(比如收藏夹中的地址)访问网站会访问失败,用户只能得到404页面错误信息。此时网站配置了重定向后,让访问这些域名的用户跳转到设定的页面以避免404错误访问。 重定向典型的应用场景包括: 重定向所有请求到另外一个站点。 设定特定的重定向规则,对特定的请求实施重定向。
  • 约束与限制 桶版本限制: 仅桶版本号为3.0及以上的桶支持镜像回源。 时间限制: 修改镜像回源规则,需要5分钟之后才能生效。 区域限制: 数据回源支持的区域请参见功能总览。 规则数量限制: 最多创建10条镜像回源规则。 功能限制: 不支持匿名用户配置镜像回源规则。 不支持给并行文件系统配置镜像回源规则。 不支持OBS静态网站,即通过OBS静态网站域名下载对象出现404,不会触发镜像回源规则。 不支持在镜像回源规则中指定当前OBS桶域名,即源桶与目标桶不能是同一个桶。 私有桶的镜像回源当前仅支持部分云厂商。 不支持源站使用Transfer-Encoding: chunked方式传输数据,即从源站下载对象的响应中必须包含Content-Length头域来指明源对象大小。 权限限制: 需要使用 IAM 增加Tenant Administrator权限后才能设置、获取和删除镜像回源规则。 镜像回源需使用IAM创建云服务委托,委托OBS获取源站数据。委托需要给OBS服务授予obs:object:HeadObject、obs:object:PutObject权限。 如果桶开启了SSE-KMS服务端加密功能,对OBS的云服务委托中还需要使用IAM配置kms:cmk:get、kms:cmk:list、kms:cmk:create、kms:dek:create、kms:dek:crypto、kms:dek:crypto权限。