通过自定义域名访问桶
当您将文件上传至OBS桶后,OBS会使用桶的默认域名自动生成文件的访问地址,使用浏览器访问该地址时,会强制下载文件。如果您不希望暴露桶的默认域名或希望在浏览器中可以在线预览文件,那么您可以为桶绑定自定义域名,通过自定义域名访问桶中的文件。
使用场景
- 域名可靠性增强:保护您的业务不受其他域名管控活动的干扰。当需要保护桶默认域名( myhuaweicloud.com )不被直接暴露时,使用自定义域名可以避免因桶默认域名暴露而使您的业务访问受到不当影响。
- 文件预览:如果您不想强制下载文件,可以通过将自定义域名绑定至OBS桶实现在线预览文件。
- 保持访问链接不变:迁移网站文件或文件存储位置发生变化时,想保持网站各页面或各文件访问链接不变,可以将文件上传至OBS桶并为桶绑定自定义域名,实现网站域名和桶默认域名之间的映射,从而继续使用原链接访问文件。
- 提升品牌形象和专业度:使用固定的个性化的域名访问企业网站,可以增强企业形象和专业度,提升企业客户体验及对企业的信任度。
- 方便访问:使用简单便于记忆的自定义域名访问桶及桶中的文件,更轻松友好。
- 访问.apk或.ipa文件:基于安全合规要求,系统阻止通过桶默认域名下载.apk或.ipa文件,而为桶绑定自定义域名后,通过自定义域名访问.apk或.ipa文件不会被阻止。
原理介绍
使用自定义域名访问桶中对象和使用桶默认域名访问桶中对象的具体请求流程如下所示。
使用自定义域名访问桶中对象的具体请求流程如图1所示:
- 用户在浏览器中输入文件访问地址(带有自定义域名的地址)来发起访问请求。
- DNS将请求解析到域名bucketName.obs.regionID.myhuaweicloud-custom.com。
bucketName为桶名,regionID为区域名,更多区域名请参见获取区域名称。
- DNS通过域名bucketName.obs.regionID.myhuaweicloud-custom.com解析请求到OBS服务器的IP地址。
- OBS返回服务器的IP地址给客户端。
- 客户端向OBS服务器IP地址发起Host为自定义域名的请求。
- OBS识别请求的Host为自定义域名,向客户端返回不带下载响应头的响应(Content-Disposition字段设置为inline)。
使用桶默认域名(bucketName.obs.regionID.myhuaweicloud.com)访问桶中对象的请求流程如图2所示:
- 用户在浏览器中输入文件访问地址(带有桶默认域名的地址)来发起访问请求。
- DNS通过桶默认域名解析请求到OBS服务器的IP地址。
- OBS返回服务器的IP地址给客户端。
- 客户端向OBS服务器IP地址发起Host为桶默认域名的请求。
- OBS识别请求的Host为桶默认域名,向客户端返回带下载响应头的响应(Content-Disposition字段设置为attachment)。
约束与限制
| 限制类别 | 具体限制 |
|---|---|
| 桶版本限制 | 桶版本号为3.0及以上的桶支持配置自定义域名。桶版本号可以在OBS管理控制台上,进入桶概览页后,在“基本信息”中查看。 |
| 域名数量限制 | 每个桶默认最多配置20个自定义域名,部分区域支持最多配置100个自定义域名,各区域支持配置的最大值请以管理控制台自定义域名配置页面的实际规格为准。 |
| 功能限制 |
说明: 如果使用了加速域名,为防止访问OBS桶中对象变成强制下载,配置自定义域名和加速域名后还需要参考CDN加速场景下访问OBS桶内对象变成强制下载的问题进行处理。 |
| 权限限制 | 跨账号场景,不允许调用设置/获取/删除桶的自定义域名接口。例如,账号A和账号B是两个华为云账号,账号A不能设置/获取/删除账号B桶的自定义域名。 同账号场景,您必须是桶拥有者或拥有设置自定义域名(obs:bucket:PutBucketCustomDomainConfiguration)、获取自定义域名(obs:bucket:GetBucketCustomDomainConfiguration)、删除自定义域名(obs:bucket:DeleteBucketCustomDomainConfiguration)权限,建议使用IAM或桶策略进行授权。了解更多OBS授权方式请参见OBS不同权限控制方式的区别。 |
前提条件
配置自定义域名
OBS支持通过管理控制台、API、obsutil、SDK方式配置自定义域名,不支持通过OBS Browser+方式配置自定义域名。
配置自定义域名分为如下三步:
- 绑定自定义域名:为桶绑定自定义域名。
- 配置CNAME域名解析:将自定义域名映射为被绑定桶的默认域名。
- (可选)配置HTTPS:使用HTTPS协议访问桶,提升域名访问的安全性。
使用自定义域名访问对象
为桶绑定自定义域名且解析生效后,验证是否可以通过自定义域名访问对象。OBS支持通过管理控制台、API、SDK、obsutil方式使用自定义域名访问对象,不支持通过OBS Browser+方式使用自定义域名访问对象。
应用实践
最佳实践
- 安全传输:配置HTTPS
为自定义域名配置SSL证书并强制使用HTTPS访问。HTTPS协议通过TLS/SSL加密机制实现客户端到服务器的端到端数据加密,同时通过证书验证服务器身份,确保数据传输的机密性、完整性以及数据发送方的身份正确。桶默认域名的SSL证书由华为云统一管理,无需额外配置;自定义域名和CDN加速域名需单独配置证书。建议提前准备备用证书并设置HTTP回退策略,防止证书失效导致业务中断。
关于配置HTTPS,详情请参见证书托管。
- 跨域访问:配置CORS规则
当前端应用需跨域(协议/域名/端口不同)访问OBS资源时,必须配置CORS规则,允许来自指定域名的跨域请求。建议精确配置“允许的来源”而非使用通配符“*”,遵循最小权限原则缩小“允许的方法”范围,并明确列出必要的“允许的头域”。安全要求高的场景严禁使用通配符“*”;性能要求高的场景可配置较长缓存时间以减少预检请求次数。
关于配置CORS规则,详情请参见配置CORS实现跨域访问OBS。
- 域名平滑切换:无需断流完成域名切换
将访问桶的默认域名切换至绑定的自定义域名或CDN加速域名时,采用分阶段切换策略可避免业务中断:
- 准备阶段:为桶绑定自定义域名或加速域名并配置CNAME域名解析,然后在测试环境验证功能和性能。
- 灰度发布阶段:在业务低峰期,将部分业务流量切换至自定义域名,然后逐步完成全量业务切换。
- 验证阶段:查看监控访问日志,确认服务运行正常。
- 全量发布阶段:将全量业务流量切换至自定义域名,完成访问域名切换。
- 回滚预案:如果在全量发布时遇到问题,立即回滚至桶默认域名,分析问题根因解决问题后重新部署。
- 性能与安全:不同业务用途使用子域名进行隔离
可以为不同业务用途分配不同子域名,如文本资源使用txt.example.com,图片资源使用image.example.com,视频资源使用video.example.com。客户根据需求访问不同的子域名,实现域名隔离。通过域名隔离,可提升浏览器并发访问性能,各子域名独立配置缓存策略和精细化的权限控制。
- 功能扩展:配置静态网站托管
将静态网站文件(包含HTML、CSS、JS等文件)上传到桶中并对这些文件赋予匿名用户可读权限;然后通过配置静态网站托管功能,设置默认首页和404错误页面;最后再为桶配置自定义域名,即可实现将桶中的静态文件发布为一个可以通过自定义域名公开访问的网站。
不支持通过桶默认域名使用静态网站托管功能,必须通过自定义域名访问。
关于配置静态网站托管,详情请参见静态网站托管。
- 访问耗时:访问自定义域名比访问桶默认域名多一次DNS解析,响应时间可能略有增加
通过自定义域名访问桶时,DNS需要完成两次解析,第一次是将客户访问的自定义域名解析为OBS域名,第二次是将OBS域名解析为OBS服务器的IP地址;而通过桶默认域名访问桶时,DNS仅需完成一次解析,即将桶默认域名解析为OBS服务器的IP地址。因此首次访问OBS桶时,使用自定义域名访问时延会稍微比直接访问桶默认域名的时延大。这是DNS协议的正常解析机制,并非OBS服务异常。如需优化访问速度,可配置CDN加速域名。
- 访问加速:配置CDN加速域名
对于需向全球用户分发静态资源的场景,建议为桶配置CDN加速域名,通过全球分布的CDN边缘节点缓存内容,获得更低访问时延,提升用户访问体验。
建议根据业务类型选择合适的CDN业务类型(网站加速、文件下载加速或点播加速),以获得较好的加速效果。配置时需选择服务范围(中国大陆、中国大陆境外或全球)和桶类型(公有桶或私有桶)。私有桶回源时系统会自动创建CDNAccessPrivateOBS委托作为身份鉴权允许CDN从OBS桶获取数据。
关于配置CDN加速域名,详情请参见通过CDN加速域名访问桶。
- 业务连续:跨区域复制桶数据后恢复访问链接
如果您在做桶中数据迁移时,不希望访问域名发生变化,可以先通过数据复制(同账号跨区域复制、跨账号跨区域复制、同账号同区域复制和跨账号同区域复制)功能将桶A中的数据复制到桶B中,然后解绑桶A绑定的自定义域名并将该自定义域名绑定至桶B中,由此即使数据迁移至另一个桶中,用户访问桶中数据的链接仍然不变。
关于数据复制,详情请参见数据复制概述。
安全防护
- 防止数据被盗用:配置防盗链
一些不良网站为了不增加成本而扩充自己站点的内容,经常盗用其他网站的图片、视频等资源的访问链接,该行为加重了源网站服务器负担的同时又产生了大量的流量费用和带宽消耗。OBS支持配置防盗链白名单和黑名单机制,白名单用于允许可信来源访问,黑名单用于拦截恶意来源。
需注意存在绕过防盗链配置而命中CDN缓存的风险,因此如果为桶配置了CDN加速域名,也必须在CDN侧配置相应防盗链规则。
关于配置防盗链,详情请参见配置防盗链防止非法流量盗用。
- 故障分析与排查:配置桶日志存储和审计
启用OBS桶日志存储功能,自动将访问日志按固定规则命名并生成日志文件上传至指定的日志存储桶。桶日志存储记录所有访问请求的详细信息,包括访问时间、来源IP、请求类型、操作类型、响应状态等,可以帮助您进行安全审计、性能分析和异常排查。详情请参见桶日志概述。
云审计服务(Cloud Trace Service,简称CTS),是华为云安全解决方案中专业的日志审计服务,能够为您提供云服务资源的操作记录,记录的信息包括发起操作的用户身份、IP地址、具体的操作内容的信息,以及操作返回的响应信息。操作记录可以帮助您进行安全审计、问题跟踪、资源定位。详情请参见使用CTS审计OBS操作事件。







