OBS访问规则
相关概念介绍
在了解OBS访问规则前,建议您先了解以下OBS访问相关的概念:
| 概念 | 说明 | 格式 | 用途 |
|---|---|---|---|
| 区域(Region) | 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。 | 一般为:地区名称-城市名称 如:华北-北京四 | 根据您的业务所在地,选择桶及存储文件的区域。 |
| 区域ID | 区域编码,唯一的区域标识。 | 一般为:地区标识-数字 如:华北地区标识为“cn-north”,“华北-北京四”对应的区域ID为“cn-north-4”。 | 在OBS API、SDK、obsutil使用时,用于签名等场景。 |
| 终端节点(Endpoint) | OBS为每个区域提供一个终端节点,终端节点可以理解为OBS在不同区域的区域域名,用于处理各自区域的访问请求。 | Endpoint 如:obs.cn-north-4.myhuaweicloud.com | 在OBS API、SDK、obsutil使用时,用于建立与OBS的网络连接等场景。 |
| 访问域名 | OBS会为每一个桶分配默认的访问域名。访问域名是桶在互联网中的域名地址,可应用于直接通过域名访问桶的场景。 | BucketName.Endpoint 其中BucketName为桶名称,Endpoint为桶所在区域的终端节点。 | 用于使用浏览器访问桶,配置静态网站托管,配置自定义域名,配置CDN加速域名等场景。 |
| 静态网站访问域名 | 桶配置为静态网站托管时,桶的静态网站访问域名。 | BucketName.obs-website.Endpoint 如:bucketname.obs-website.cn-north-4.myhuaweicloud.com | 使用桶管理静态网页文件并发布为网站时,使用该域名访问静态文件。 |
| 自定义域名 | 您根据自身需求在华为云或其他域名提供商处自主注册的已通过工信部备案的域名。 | 自定义名称.域名后缀 有多个后缀,如.com、.cn等。 自定义域名举例:www.example.com | 为桶配置自定义域名,通过在桶访问域名和自定义域名之间做映射,实现使用自定义域名访问OBS桶。 |
| CDN加速域名 | 使用CDN(Content Delivery Network,内容分发网络)配置自定义域名加速,实现访问加速。 | CDN加速域名格式和自定义域名无区别,区别仅在于需要配置服务范围(中国大陆、中国大陆外、全球)和业务类型(网站加速、文件下载加速、点播加速)。 | 用于需要在全球范围内加速访问存储在OBS桶中文件的场景。 |
| 双栈域名终端节点 | 终端节点可以理解为OBS在不同区域的区域域名,用于处理各自区域的访问请求。 OBS为每个区域提供两个终端节点,一个为IPv4区域域名(原有的终端节点),一个为IPv6区域域名(双栈域名终端节点)。 | obs.dualstack.RegionID.myhuaweicloud.com 其中RegionID为区域ID。 如:obs.dualstack.cn-north-4.myhuaweicloud.com | 在OBS API、SDK、obsutil使用时,用于建立与OBS的网络连接等场景。 同时,确保在使用IPv6的同时可以兼容现有的IPv4用户,实现访问OBS从IPv4向IPv6平滑过渡。 |
| 内网IP网段 | OBS桶在华为云内网的访问地址所在的网段。 | 内网IP网段不区分区域,所有区域均为“100.125.0.0/16”。 | 用于需要通过内网访问OBS的场景。 |
| 专线域名 | 多云互联场景下,为了解决IDC专线接入OBS时发生的IP冲突问题,OBS为云专线场景提供了专线域名。 | BucketName.obs-private.RegionID.myhuaweicloud.com 其中BucketName为桶名,RegionID为区域ID。 如:test-bucket.obs-private.cn-north-4.myhuaweicloud.com | 用于建立企业本地数据中心IDC(Internet Data Center,以下简称IDC)与华为云OBS之间的访问,或用于通过云连接实现内网跨区域访问OBS。 |
| 专线IP网段 | 专线域名通过公网DNS解析后即可得到对应的专线IP,专线IP所属的网段即为专线IP网段。 | 专线IP网段无固定格式,每个区域不同。 如:“华北-北京四”对应的专线IP网段为“120.46.235.0/25”。 | 用于建立企业本地数据中心IDC(Internet Data Center,以下简称IDC)与华为云OBS之间的访问,或用于通过云连接实现内网跨区域访问OBS。 |
OBS访问方案选择
OBS提供多种访问方案,根据您的访问需求,推荐访问相关的功能配置,帮助您构建高效、稳定、安全的OBS访问架构,如表2所示。
| 访问需求 | 网络访问类型 | 场景 | 推荐方案 |
|---|---|---|---|
| 基础访问 | 公网/内网访问 | 查询各区域ID、终端节点、双栈域名终端节点、内网IP网段、专线IP网段。 | |
| 公网/内网访问 | 介绍OBS域名类型:区域域名(终端节点)、桶访问域名、对象访问域名、静态网站访问域名、自定义域名、CDN加速域名、专线域名等。 | ||
| 公网访问 | 实现文件在线预览,或统一访问域名中的品牌标识。 | ||
| 加速访问 | 公网访问 | 实现存储在OBS桶中的文件可以被全球加速访问。 | |
| 安全访问 | 公网访问 | 为自定义域名配置HTTPS证书,实现使用链接“https://xxxx”安全访问OBS。 | |
| 公网访问 | 防止存储在OBS桶中的资源被其他不良网站盗用造成数据安全和流量费用激增。 | ||
| 兼容访问 | 公网访问 | 确保在使用IPv6的同时可以兼容现有的IPv4用户,实现访问OBS从IPv4向IPv6平滑过渡。 | |
| Web访问 | 公网访问 | 将静态网页文件存储在OBS桶中,发布为网站。 | |
| 公网访问 | 实现不同域(协议/域名/端口不同)之间的网站脚本和内容进行交互访问,即跨域访问。 | ||
| 内网访问 | 内网访问 | 通过服务之间的内部通信网络访问OBS。 | |
| 固定访问 | 公网访问 | 实现通过固定的IP地址访问OBS。 | |
| 专线访问 | 专线访问 | 建立企业本地数据中心IDC(Internet Data Center,以下简称IDC)与华为云OBS之间的访问。 |
区域和终端节点
以下列举OBS常见的区域、终端节点、双栈域名终端节点、内网IP网段、专线IP网段,覆盖全球多个区域。关于更多区域和终端节点信息,请参见地区和终端节点。
内网IP网段不区分区域,所有区域均为“100.125.0.0/16”。
| 区域名称 | 区域 | 终端节点(Endpoint) | 双栈域名终端节点 | 内网IP网段 | 专线IP网段 |
|---|---|---|---|---|---|
| 华北-北京四 | cn-north-4 | obs.cn-north-4.myhuaweicloud.com | obs.dualstack.cn-north-4.myhuaweicloud.com | 100.125.0.0/16 | 120.46.235.0/25 |
| 华北-乌兰察布一 | cn-north-9 | obs.cn-north-9.myhuaweicloud.com | obs.dualstack.cn-north-9.myhuaweicloud.com | 100.125.0.0/16 | 请提交工单获取。 |
| 华北三 | cn-north-12 | obs.cn-north-12.myhuaweicloud.com | obs.dualstack.cn-north-12.myhuaweicloud.com | 100.125.0.0/16 | 请提交工单获取。 |
| 华东-上海一 | cn-east-3 | obs.cn-east-3.myhuaweicloud.com | obs.dualstack.cn-east-3.myhuaweicloud.com | 100.125.0.0/16 | 123.60.199.0/25 |
| 华东-青岛 | cn-east-5 | obs.cn-east-5.myhuaweicloud.com | obs.dualstack.cn-east-5.myhuaweicloud.com | 100.125.0.0/16 | 请提交工单获取。 |
| 华东二 | cn-east-4 | obs.cn-east-4.myhuaweicloud.com | obs.dualstack.cn-east-4.myhuaweicloud.com | 100.125.0.0/16 | 请提交工单获取。 |
| 华南-广州 | cn-south-1 | obs.cn-south-1.myhuaweicloud.com | obs.dualstack.cn-south-1.myhuaweicloud.com | 100.125.0.0/16 | 请提交工单获取。 |
| 华南-广州-友好用户环境 | cn-south-4 | obs.cn-south-4.myhuaweicloud.com | 请提交工单确认区域的支持情况。 | 100.125.0.0/16 | 请提交工单获取。 |
| 西南-贵阳一 | cn-southwest-2 | obs.cn-southwest-2.myhuaweicloud.com | obs.dualstack.cn-southwest-2.myhuaweicloud.com | 100.125.0.0/16 | 请提交工单获取。 |
| 中国-香港 | ap-southeast-1 | obs.ap-southeast-1.myhuaweicloud.com | obs.dualstack.ap-southeast-1.myhuaweicloud.com | 100.125.0.0/16 | 请提交工单获取。 |
| 亚太-曼谷 | ap-southeast-2 | obs.ap-southeast-2.myhuaweicloud.com | obs.dualstack.ap-southeast-2.myhuaweicloud.com | 100.125.0.0/16 | 请提交工单获取。 |
| 亚太-新加坡 | ap-southeast-3 | obs.ap-southeast-3.myhuaweicloud.com | 请提交工单确认区域的支持情况。 | 100.125.0.0/16 | 请提交工单获取。 |
| 亚太-雅加达 | ap-southeast-4 | obs.ap-southeast-4.myhuaweicloud.com | 请提交工单确认区域的支持情况。 | 100.125.0.0/16 | 请提交工单获取。 |
| 亚太-马尼拉 | ap-southeast-5 | obs.ap-southeast-5.myhuaweicloud.com | obs.dualstack.ap-southeast-5.myhuaweicloud.com | 100.125.0.0/16 | 请提交工单获取。 |
| 区域名称 | 区域 | 终端节点(Endpoint) | 双栈域名终端节点 | 内网IP网段 | 专线IP网段 |
|---|---|---|---|---|---|
| 拉美-墨西哥城一 | na-mexico-1 | obs.na-mexico-1.myhuaweicloud.com | 请提交工单确认区域的支持情况。 | 100.125.0.0/16 | 请提交工单获取。 |
| 拉美-墨西哥城二 | la-north-2 | obs.la-north-2.myhuaweicloud.com | 请提交工单确认区域的支持情况。 | 100.125.0.0/16 | 请提交工单获取。 |
| 拉美-圣保罗一 | sa-brazil-1 | obs.sa-brazil-1.myhuaweicloud.com | 请提交工单确认区域的支持情况。 | 100.125.0.0/16 | 请提交工单获取。 |
| 拉美-圣地亚哥 | la-south-2 | obs.la-south-2.myhuaweicloud.com | obs.dualstack.la-south-2.myhuaweicloud.com | 100.125.0.0/16 | 请提交工单获取。 |
| 区域名称 | 区域 | 终端节点(Endpoint) | 双栈域名终端节点 | 内网IP网段 | 专线IP网段 |
|---|---|---|---|---|---|
| 中东-利雅得 | me-east-1 | obs.me-east-1.myhuaweicloud.com | obs.dualstack.me-east-1.myhuaweicloud.com | 100.125.0.0/16 | 请提交工单获取。 |
| 区域名称 | 区域 | 终端节点(Endpoint) | 双栈域名终端节点 | 内网IP网段 | 专线IP网段 |
|---|---|---|---|---|---|
| 土耳其-伊斯坦布尔 | tr-west-1 | obs.tr-west-1.myhuaweicloud.com | obs.dualstack.tr-west-1.myhuaweicloud.com | 100.125.0.0/16 | 请提交工单获取。 |
Endpoint使用说明
一般情况下,向OBS资源发起请求时使用的Endpoint必须为被请求资源所在区域的Endpoint;但也存在某些特殊情况可以不用遵守此要求,可以使用任意区域的Endpoint。
- 请求中Endpoint必须使用被请求资源所在区域Endpoint的场景
在访问桶和对象时,请求中Endpoint必须使用桶和对象所在区域的Endpoint。
例如桶mybucket所属区域是cn-north-4,列举桶mybucket中的对象的示例如下:
列举桶内对象正确示例:
【请求消息】
GET / HTTP/1.1 Host: mybucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: Thu, 10 Mar 2016 08:51:25 GMT Authorization: authorization
【响应消息】
HTTP/1.1 200 OK x-obs-request-id: 0001EF710C000001536176DA465E4E6G x-obs-id-2: Rdj0zZvRkihRcjcQUqjkDGt8JuAgi2CGuLiP7Pv/cYYplsS0xTFJQHP5vSg5yOYC Content-Type: application/xml Date: Thu, 10 Mar 2016 16:58:12 GMT x-obs-bucket-location: cn-north-4 Content-Length: 259 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ListBucketResult xmlns="http://obs.myhuaweicloud.com/doc/2015-06-30/"> <Name>mybucket</Name> <Prefix/> <Marker/> <MaxKeys>1000</MaxKeys> <IsTruncated>false</IsTruncated> <Contents> <Key>object001</Key> <LastModified>2015-07-01T00:32:16.482Z</LastModified> <ETag>"2fa3bcaaec668adc5da177e67a122d7c"</ETag> <Size>12041</Size> <Owner> <ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> </ListBucketResult>如果使用的Endpoint和桶所属区域对应的Endpoint不一致,会提示桶不存在。
上述例子中桶mybucket所属区域是cn-north-4,如果使用cn-south-1的Endpoint(mybucket.obs.cn-south-1.myhuaweicloud.com)访问桶,则会收到HTTP 404状态码,提示桶不存在。此时可以使用获取桶区域位置接口获取到桶所属区域,再次发起请求。
列举桶内对象错误示例:
【请求消息】
GET / HTTP/1.1 Host: mybucket.obs.cn-south-1.myhuaweicloud.com Accept: */* Date: Thu, 10 Mar 2016 08:51:25 GMT Authorization: authorization
【响应消息】
HTTP/1.1 404 NoSuchBucket x-obs-request-id: 0001EF710C000001536176DA465E4E6H x-obs-id-2: Rdj0zZvRkihRcjcQUqjkDGt8JuAgi2CGuLiP7Pv/cYYplsS0xTFJQHP5vSg5yOYL Date: Thu, 10 Mar 2016 08:51:30 GMT Content-Length: 318 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Error> <Code>NoSuchBucket</Code> <Message>The specified bucket does not exist</Message> <RequestId>0001EF710C000001536176DA465E4E6H</RequestId> <HostId>R2zskemlm0PtIQqw9dRrW+RVjYUj6kLtcvdPjHLdyMCgThSrWToXNyJIyx5Oe2nu</HostId> <BucketName>bucket05</BucketName> </Error>
- 请求中Endpoint可以使用任意区域Endpoint的场景
因为“获取桶列表”接口获取的是指定账号或用户下所有区域的OBS桶,“获取桶区域位置”接口是在所有区域中检索您请求的桶,所以对于这两个接口而言,请求中Endpoint可以使用任意区域的Endpoint。
获取桶区域位置示例:
例如桶mybucket位于cn-north-4区域,请求中使用cn-south-1区域的Endpoint,也能成功获取到其位置信息。
【请求消息】GET /?location HTTP/1.1 Host: mybucket.obs.cn-south-1.myhuaweicloud.com Accept: */* Date: Thu, 10 Mar 2016 08:51:25 GMT Authorization: authorization
【响应消息】HTTP/1.1 200 OK x-obs-request-id: 0001EF710C000001536176DA465E4E6G x-obs-id-2: Rdj0zZvRkihRcjcQUqjkDGt8JuAgi2CGuLiP7Pv/cYYplsS0xTFJQHP5vSg5yOYC Content-Type: application/xml Date: Thu, 10 Mar 2016 16:58:12 GMT Content-Length: length <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Location xmlns="http://obs.myhuaweicloud.com/doc/2015-06-30/">cn-north-4</Location>
OBS域名
以下介绍OBS域名类型及使用示例。
OBS域名类型
表8列出了与OBS相关的域名结构、协议类型等信息,以便您全面地了解OBS域名。
| 域名类型 | 域名结构 | 说明 | 是否需要开通 | 协议类型 | |
|---|---|---|---|---|---|
| 用户自定义域名(推荐) | 【结构】 自定义名称.域名后缀 支持多个后缀,如.com、.cn等。 【示例】 www.example.com | 您根据自身需求在华为云或其他域名提供商处自主注册的已通过工信部备案的域名。 为桶配置自定义域名,并通过在桶访问域名和自定义域名之间做映射,实现使用自定义域名访问OBS桶。 | HTTPS HTTP | ||
| 用户自定义域名(加速域名) | CDN加速域名格式和自定义域名无区别,区别仅在于需要配置服务范围(中国大陆、中国大陆外、全球)和业务类型(网站加速、文件下载加速、点播加速)。 | 使用CDN(Content Delivery Network,内容分发网络)配置自定义域名加速,实现访问加速。 用于需要在全球范围内加速访问存储在OBS桶中文件的场景。 | HTTPS HTTP | ||
| 华为云OBS域名 说明: 为了保护您的业务不受华为云公共域名被相关机构接管的影响,建议优先选择自定义域名。 | 区域域名(终端节点) | 【结构】 Endpoint 【示例】 obs.cn-north-4.myhuaweicloud.com | OBS为每个区域提供一个终端节点,终端节点可以理解为OBS在不同区域的区域域名,用于处理各自区域的访问请求。 各区域的终端节点详情请参见地区和终端节点。 | 默认可用 | HTTPS HTTP |
| 桶访问域名 | 【结构】 BucketName.Endpoint 【示例】 bucketname.obs.cn-north-4.myhuaweicloud.com | OBS会为每一个桶分配默认的访问域名。访问域名是桶在互联网中的域名地址,可应用于直接通过域名访问桶的场景。 | 默认可用 | HTTPS HTTP | |
| 对象访问域名 | 【结构】 BucketName.Endpoint/ObjectName 【示例】 bucketname.obs.cn-north-4.myhuaweicloud.com/object.txt | 对象上传到桶中后,可以使用对象访问域名来访问桶中的指定对象。 您可以根据访问域名结构自行拼接,也可以通过在OBS管理控制台、OBS Browser+上查看对象属性获取,或在SDK上通过调用GetObjectUrl接口获取。 | 默认可用 | HTTPS HTTP | |
| 静态网站访问域名 | 【结构】 BucketName.obs-website.Endpoint 【示例】 bucketname.obs-website.cn-north-4.myhuaweicloud.com | 桶配置为静态网站托管时,桶的静态网站访问域名。 使用桶管理静态网页文件并发布为网站时,使用该域名访问静态文件。 | HTTPS HTTP | ||
| 华为云OBS域名 | 专线域名 | 【结构】 BucketName.obs-private.RegionID.myhuaweicloud.com 【示例】 mybucket.obs-private.cn-north-4.myhuaweicloud.com | 多云互联场景下,为了解决IDC专线接入OBS时发生的IP冲突问题,OBS为云专线场景提供了专线域名。 用于建立企业本地数据中心IDC(Internet Data Center,以下简称IDC)与华为云OBS之间的访问,或用于通过云连接实现内网跨区域访问OBS。 “RegionID”请在地区和终端节点中获取。 | 需配置使用云专线访问OBS | HTTPS HTTP |
| 华为云OBS域名 | 双栈域名 | 【结构】 BucketName.obs.dualstack.RegionID.myhuaweicloud.com 【示例】 examplebucket.obs.dualstack.cn-north-4.myhuaweicloud.com | 双栈域名是指一个互联网域名在域名系统(DNS)中同时配置了IPv4和IPv6两种地址记录。用户访问该域名时,DNS会根据访问者自身的网络能力(支持IPv6或IPv4),提供最合适的IP地址。 “RegionID”请在地区和终端节点中获取。 | 支持的区域请以实际使用产品时支持的情况为准。 | HTTPS HTTP |
基于安全合规要求,华为云禁止使用path请求方式访问OBS桶(path请求方式是指桶名不在访问域名中,而在URL参数中的访问请求,即 https://obs.regionID.myhuaweicloud.com/${bucketname}/api-path )。您需要使用桶域名标准方式进行访问,即 https://${bucketname}.obs.regionID.myhuaweicloud.com/api-path。
OBS域名使用示例
- 使用浏览器
以下示例演示通过浏览器访问对象域名。
- 进入桶列表页面,单击桶名称,进入对象列表页面。
- 单击待访问对象的名称,进入对象基本信息页面。
- 复制对象访问链接。
- 使用浏览器访问复制的对象链接。
- 使用obsutil
以下示例演示通过obsutil工具下载对象,可通过“bucket-cname”参数指定桶绑定的自定义域名,通过“e”参数指定终端节点。
obsutil cp obs://bucket/key file_or_folder_url [-bucket-cname=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
不同域名类型对应的参数配置如下:
表9 不同域名类型对应的参数配置 域名类型
参数配置
对象访问域名
参数“e”配置为桶所在区域的终端节点。如:-e=obs.cn-north-4.myhuaweicloud.com
自定义域名
参数“bucket-cname”配置为桶绑定的自定义域名。如:-bucket-cname=www.example.com
Util 5.7.9版本及以上支持“bucket-cname”参数。
协议与端口
所有区域的终端节点和桶访问域名均支持HTTP和HTTPS两种协议访问。为确保OBS数据访问的安全性,建议您使用HTTPS协议。
OBS支持的协议和端口情况如下:
| 协议 | 端口 | 说明 |
|---|---|---|
| HTTPS | 443 | HTTPS协议的默认端口,端口值缺省时,默认使用443。 |
| HTTP | 80 | HTTP协议的默认端口,端口值缺省时,默认使用80。 |
通过公网或内网访问OBS
通过公网访问OBS产生的流入流量(数据上传到OBS等写操作)是免费的,流出流量(下载OBS数据等读操作)是收费的。
公网流出流量的收费标准请参见产品价格详情。
通过公网访问OBS可以直接通过URL的形式来表示OBS中的资源。OBS的URL构成如下:
Protocol://[BucketName].Endpoint[:Port][/Object][?Param]
| 参数 | 描述 | 是否必选 |
|---|---|---|
| Protocol | 请求使用的协议类型,如HTTP、HTTPS。HTTPS表示通过安全的HTTPS访问该资源,对象存储服务支持HTTP,HTTPS两种传输协议。 | 必选 |
| BucketName | 请求使用的桶名称,在整个OBS中唯一标识一个桶。 | 条件必选 除“获取桶列表”之外的所有接口,都应当包含桶名BucketName。 |
| Endpoint | OBS中桶所在区域的区域域名(终端节点)。 各区域的终端节点详情请参见地区和终端节点。 | 必选 |
| Port | 请求使用的端口号。根据软件服务器的部署不同而不同。缺省时使用默认端口,各种传输协议都有默认的端口号,如HTTP的默认端口为80,HTTPS的默认端口为443。 OBS服务的HTTP方式访问端口为80,HTTPS方式访问端口为443。 | 可选 |
| Object | 请求使用的对象资源路径,即对象上传到OBS后的访问路径。 | 可选 |
| Param | 请求使用的桶和对象的具体资源,缺省默认为请求桶或对象自身资源。 | 可选 |
示例:您在华北-北京四(cn-north-4)区域有一个名为mybucket的桶,桶中有一个对象myfolder/myfile.txt,通过公网访问这个对象的URL地址为:
https://mybucket.obs.cn-north-4.myhuaweicloud.com/myfolder/myfile.txt
除“获取桶列表”之外的所有接口,都应当包含桶名BucketName。OBS基于DNS解析性能和可靠性的考虑,要求凡是携带桶名的请求,在构造URL的时候都必须将桶名放在Endpoint前面,形成三级域名形式,又称为虚拟主机访问域名。
通过内网访问OBS主要指通过服务之间的内部通信网络访问OBS。通过内网访问OBS产生的流入流量(数据上传到OBS等写操作)和流出流量(下载OBS数据等读操作)都是免费的。
例如在弹性云服务器(Elastic Cloud Server,ECS)上通过内网访问OBS,可以避免公网网络质量带来的不利影响,达到优化性能、节省开支的目的。
OBS向您提供了相关最佳实践的配置方法,详情请参见在ECS上通过内网访问OBS。