- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 权限配置指南
-
工具指南
- OBS工具汇总
-
OBS Browser+
- OBS Browser+简介
- OBS Browser+功能概述
- 下载OBS Browser+
- 安装OBS Browser+
- 登录OBS Browser+
- 桶的基本操作
- 桶的高级配置
- 对象操作
- 任务管理
- 最佳实践
-
常见问题
- 在哪里可以获取AK和SK?
- 如何获取子用户IAM的用户ID?
- 是否可以同时装两个不同站点的OBS Browser+工具?
- OBS Browser+与OBS Browser的不同之处?
- OBS Browser+支持迁移OBS Browser保存的账号信息和任务信息吗?
- 为什么我运行了百万级别的任务后,感觉任务执行较慢?
- 为什么OBS Browser+上显示的桶中对象数量和桶内存储用量与实际的不一致?
- 为什么通过OBS Browser+设置桶ACL后,旧配置中的deliver属性会被覆盖为false?
- 使用账号登录时,界面提示“没有权限登录”
- 使用账号登录时,界面提示“获取用户的Token失败”
- 使用账号登录时,界面提示“账号或者密码错误”
- 定时上传是否采用增量
- 如何永久分享文件或文件夹
- 如何访问指定桶或指定目录
- 目录分享是否支持分享后取消分享
- 是否支持统计文件夹内的文件数目及大小
- 如何解决DNS解析失败
- 是否支持列举特殊字符对象
- 恢复对象任务状态一直是恢复中
- 卸载OBS Browser+
- obsutil
- obsfs(已下线)
- 最佳实践
-
API参考
- 使用前必读
- API概览
- 如何调用API
- 快速入门
-
API
- 桶的基础操作
-
桶的高级配置
- 设置桶策略
- 获取桶策略
- 删除桶策略
- 设置桶ACL
- 获取桶ACL
- 设置桶日志管理配置
- 获取桶日志管理配置
- 设置桶的生命周期配置
- 获取桶的生命周期配置
- 删除桶的生命周期配置
- 设置桶的多版本状态
- 获取桶的多版本状态
- 设置桶默认存储类型
- 获取桶默认存储类型
- 设置桶的跨区域复制配置
- 获取桶的跨区域复制配置
- 删除桶的跨区域复制配置
- 设置桶标签
- 获取桶标签
- 删除桶标签
- 设置桶配额
- 获取桶配额
- 获取桶存量信息
- 设置桶清单
- 获取桶清单
- 列举桶清单
- 删除桶清单
- 设置桶的自定义域名
- 获取桶的自定义域名
- 删除桶的自定义域名
- 设置桶的加密配置
- 获取桶的加密配置
- 删除桶的加密配置
- 设置桶归档存储对象直读策略
- 获取桶归档存储对象直读策略
- 删除桶归档存储对象直读策略
- 设置镜像回源规则
- 获取镜像回源规则
- 删除镜像回源规则
- 设置DIS通知策略
- 获取DIS通知策略
- 删除DIS通知策略
- 设置在线解压策略
- 获取在线解压策略
- 删除在线解压策略
- 配置桶级默认WORM策略
- 获取桶级默认WORM策略
- 静态网站托管
- 对象操作
- 多段操作
- 服务端加密
- Data+
- 错误码
- 权限和授权项
- 附录
-
SDK参考
- SDK概述
- SDK功能矩阵
-
Java
- 使用前须知(Java SDK)
- Java SDK接口概览(Java SDK)
- 使用前准备(Java SDK)
- 下载与安装SDK(Java SDK)
- 快速入门(Java SDK)
- 初始化(Java SDK)
- 管理桶(Java SDK)
- 管理并行文件系统(Java SDK)
- 上传对象(Java SDK)
- 下载对象(Java SDK)
- 管理对象(Java SDK)
- 临时授权访问(Java SDK)
- 多版本控制(Java SDK)
- 生命周期管理(Java SDK)
- 跨域资源共享(Java SDK)
- 设置访问日志(Java SDK)
- 静态网站托管(Java SDK)
- 桶标签管理(Java SDK)
- 服务端加密(Java SDK)
- 客户端加密(Java SDK)
- 问题定位(Java SDK)
- 异常处理(Java SDK)
-
常见问题(Java SDK)
- 本文档是否适用于union SDK?
- 如何使对象可以被匿名用户访问?(Java SDK)
- SDK的重试机制是什么?(Java SDK)
- 如何获取桶的静态网站访问地址?(Java SDK)
- 如何获取对象URL?(Java SDK)
- 公网环境下如何提高上传大文件速度?(Java SDK)
- 如何进行分段上传?(Java SDK)
- 如何进行分段下载?(Java SDK)
- 如果桶内已存在同名对象,如何判定覆盖上传成功?(Java SDK)
- 对于加密类型的对象如何使用URL进行下载?(Java SDK)
- 如何生成SSE-C方式的加密密钥(Java SDK)
- 如何获取SecurityToken?(Java SDK)
- SDK是否支持批量上传、下载或复制对象?(Java SDK)
- 如何指定Content-SHA256?(Java SDK)
- 为什么SDK源码中包含acs.amazonaws.com关键字?(Java SDK)
- 如何理解Content-Type(MIME)?(Java SDK)
- 如何获取账号ID和用户ID?
- 如何实现上传对象时限速(Java SDK)
- 如何实现下载对象时限速(Java SDK)
- 如何设置referer头域(Java SDK)
-
Python
- 使用前须知(Python SDK)
- Python SDK接口概览
- 使用前准备(Python SDK)
- 下载与安装SDK(Python SDK)
- 快速入门(Python SDK)
- 初始化(Python SDK)
-
桶相关接口(Python SDK)
- 创建桶(Python SDK)
- 获取桶列表(Python SDK)
- 判断桶是否存在(Python SDK)
- 删除桶(Python SDK)
- 列举桶内对象(Python SDK)
- 列举桶内多版本对象(Python SDK)
- 获取桶元数据(Python SDK)
- 获取桶区域位置(Python SDK)
- 获取桶存量信息(Python SDK)
- 设置桶配额(Python SDK)
- 获取桶配额(Python SDK)
- 设置桶存储类型(Python SDK)
- 获取桶存储类型(Python SDK)
- 设置桶ACL(Python SDK)
- 获取桶ACL(Python SDK)
- 设置桶日志管理配置(Python SDK)
- 获取桶日志管理配置(Python SDK)
- 设置桶策略(Python SDK)
- 获取桶策略(Python SDK)
- 删除桶策略(Python SDK)
- 设置桶的生命周期配置(Python SDK)
- 获取桶的生命周期配置(Python SDK)
- 删除桶的生命周期配置(Python SDK)
- 设置桶的Website配置(Python SDK)
- 获取桶的Website配置(Python SDK)
- 删除桶的Website配置(Python SDK)
- 设置桶的多版本状态(Python SDK)
- 获取桶的多版本状态(Python SDK)
- 设置桶的CORS配置(Python SDK)
- 获取桶的CORS配置(Python SDK)
- 删除桶的CORS配置(Python SDK)
- 设置桶标签(Python SDK)
- 获取桶标签(Python SDK)
- 删除桶标签(Python SDK)
-
对象相关接口(Python SDK)
- 上传对象简介(Python SDK)
- 上传对象-文本上传(Python SDK)
- 上传对象-流式上传(Python SDK)
- 上传对象-文件上传(Python SDK)
- 上传对象-追加上传(Python SDK)
- 上传对象-断点续传上传(Python SDK)
- 上传对象-获取上传进度(Python SDK)
- 上传对象-基于表单上传(Python SDK)
- 下载对象简介(Python SDK)
- 下载对象-二进制下载(Python SDK)
- 下载对象-流式下载(Python SDK)
- 下载对象-文件下载(Python SDK)
- 下载对象-范围下载(Python SDK)
- 下载对象-断点续传下载(Python SDK)
- 下载对象-获取下载进度(Python SDK)
- 上传对象-创建文件夹(Python SDK)
- 复制对象(Python SDK)
- 删除对象(Python SDK)
- 批量删除对象(Python SDK)
- 获取对象元数据(Python SDK)
- 修改对象元数据(Python SDK)
- 设置对象ACL(Python SDK)
- 获取对象ACL(Python SDK)
- 恢复归档或深度归档存储对象(Python SDK)
- 多段相关接口(Python SDK)
- 客户端加密相关接口(Python SDK)
- 服务编排接口(Python SDK)
- 其他接口(Python SDK)
- 异常处理(Python SDK)
- 常见问题(Python SDK)
- C
-
Go
- 使用前须知(Go SDK)
- Go SDK接口概览
- 使用前准备(Go SDK)
- 下载与安装SDK(Go SDK)
- 快速入门(Go SDK)
- 初始化(Go SDK)
-
桶相关接口(Go SDK)
- 桶相关接口说明(Go SDK)
- 创建桶(Go SDK)
- 获取桶列表(Go SDK)
- 判断桶是否存在(Go SDK)
- 删除桶(Go SDK)
- 列举桶内对象(Go SDK)
- 列举桶内多版本对象(Go SDK)
- 获取桶元数据(Go SDK)
- 获取桶区域位置(Go SDK)
- 获取桶存量信息(Go SDK)
- 设置桶配额(Go SDK)
- 获取桶配额(Go SDK)
- 设置桶存储类型(Go SDK)
- 获取桶存储类型(Go SDK)
- 设置桶ACL(Go SDK)
- 获取桶ACL(Go SDK)
- 设置桶日志管理配置(Go SDK)
- 获取桶日志管理配置(Go SDK)
- 设置桶策略(Go SDK)
- 获取桶策略(Go SDK)
- 删除桶策略(Go SDK)
- 设置桶的生命周期配置(Go SDK)
- 获取桶的生命周期配置(Go SDK)
- 删除桶的生命周期配置(Go SDK)
- 设置桶的网站配置(Go SDK)
- 获取桶的网站配置(Go SDK)
- 删除桶的网站配置(Go SDK)
- 设置桶的多版本状态(Go SDK)
- 获取桶的多版本状态(Go SDK)
- 设置桶的CORS配置(Go SDK)
- 获取桶的CORS配置(Go SDK)
- 删除桶的CORS配置(Go SDK)
- 设置桶标签(Go SDK)
- 获取桶标签(Go SDK)
- 删除桶标签(Go SDK)
- 设置桶加密配置(Go SDK)
- 获取桶加密配置(Go SDK)
- 删除桶加密配置(Go SDK)
- 设置桶的自定义域名(Go SDK)
- 获取桶的自定义域名(Go SDK)
- 删除桶的自定义域名(Go SDK)
- 并行文件系统相关接口(Go SDK)
- 对象相关接口(Go SDK)
- 多段相关接口(Go SDK)
- 其他接口(Go SDK)
- 单链接限速(Go SDK)
- 异常处理(Go SDK)
- 常见问题(Go SDK)
- BrowserJS
- .NET
- Android
- iOS
- PHP
-
Node.js
- SDK下载(Node.js SDK)
- 示例程序(Node.js SDK)
- 技术支持渠道(Node.js SDK)
- 快速入门(Node.js SDK)
- 初始化(Node.js SDK)
-
管理桶(Node.js SDK)
- 创建桶(Node.js SDK)
- 列举桶列表(Node.js SDK)
- 判断桶是否存在(Node.js SDK)
- 删除桶(Node.js SDK)
- 获取桶元数据(Node.js SDK)
- 设置桶ACL(Node.js SDK)
- 获取桶ACL(Node.js SDK)
- 设置桶策略(Node.js SDK)
- 获取桶策略(Node.js SDK)
- 删除桶策略(Node.js SDK)
- 获取桶区域位置(Node.js SDK)
- 获取桶存量信息(Node.js SDK)
- 设置桶配额(Node.js SDK)
- 获取桶配额(Node.js SDK)
- 设置桶存储类别(Node.js SDK)
- 获取桶存储类别(Node.js SDK)
- 上传对象(Node.js SDK)
- 下载对象(Node.js SDK)
- 管理对象(Node.js SDK)
- 多段相关接口(Node.js SDK)
- 临时授权访问(Node.js SDK)
- 多版本控制(Node.js SDK)
- 生命周期管理(Node.js SDK)
- 桶的CORS配置(Node.js SDK)
- 设置访问日志(Node.js SDK)
- 静态网站托管(Node.js SDK)
- 标签管理(Node.js SDK)
- 服务端加密(Node.js SDK)
- 异常处理(Node.js SDK)
- 常见问题(Node.js SDK)
-
Harmony(公测)
- 使用前须知(Harmony SDK)
- Harmony SDK接口概览(Harmony SDK)
- 使用前准备(Harmony SDK)
- 下载与安装SDK(Harmony SDK)
- 快速入门(Harmony SDK)
- 初始化(Harmony SDK)
-
桶相关接口(Harmony SDK)
- 创建桶(Harmony SDK)
- 获取桶列表(Harmony SDK)
- 判断桶是否存在(Harmony SDK)
- 删除桶(Harmony SDK)
- 列举桶内对象(Harmony SDK)
- 列举桶内多版本对象(Harmony SDK)
- 获取桶元数据(Harmony SDK)
- 获取桶区域位置(Harmony SDK)
- 获取桶存量信息(Harmony SDK)
- 设置桶配额(Harmony SDK)
- 获取桶配额(Harmony SDK)
- 设置桶存储类型(Harmony SDK)
- 获取桶存储类型(Harmony SDK)
- 设置桶ACL(Harmony SDK)
- 获取桶ACL(Harmony SDK)
- 设置桶日志管理配置(Harmony SDK)
- 获取桶日志管理配置(Harmony SDK)
- 设置桶策略(Harmony SDK)
- 获取桶策略(Harmony SDK)
- 删除桶策略(Harmony SDK)
- 设置桶的生命周期配置(Harmony SDK)
- 获取桶的生命周期配置(Harmony SDK)
- 删除桶的生命周期配置(Harmony SDK)
- 设置桶的Website配置(Harmony SDK)
- 获取桶的Website配置(Harmony SDK)
- 删除桶的Website配置(Harmony SDK)
- 设置桶的多版本状态(Harmony SDK)
- 获取桶的多版本状态(Harmony SDK)
- 设置桶的CORS配置(Harmony SDK)
- 获取桶的CORS配置(Harmony SDK)
- 删除桶的CORS配置(Harmony SDK)
- 设置桶标签(Harmony SDK)
- 获取桶标签(Harmony SDK)
- 删除桶标签(Harmony SDK)
- 设置桶的加密配置(Harmony SDK)
- 获取桶的加密配置(Harmony SDK)
- 删除桶的加密配置(Harmony SDK)
- 设置桶的自定义域名(Harmony SDK)
- 获取桶的自定义域名(Harmony SDK)
- 删除桶的自定义域名(Harmony SDK)
- 并行文件系统相关接口(Harmony SDK)
- 对象相关接口(Harmony SDK)
- 多段相关接口(Harmony SDK)
- 其他接口(Harmony SDK)
- 异常处理(Harmony SDK)
- 常见问题(Harmony SDK)
- 场景代码示例
-
常见问题
-
产品咨询
- 如何获取OBS的终端节点?
- 我可以在OBS中存储多少数据?
- 我如何选择将数据存储在哪个区域?
- OBS支持使用HTTPS协议访问吗?
- OBS中的数据可以让其他用户访问吗?
- 访问OBS链接提示告警信息的原因和解决办法
- 已删除的数据是否可以恢复?
- 访问OBS域名失败,连接不上CA证书
- 为什么OBS存储的数据丢失了?
- OBS是否支持流量监控?
- OBS上传下载速率的影响因素有哪些?
- 对象存储与SAN存储和NAS存储相比较有什么优势?
- OBS的文件夹与文件系统的文件夹是否一样?
- OBS、EVS和SFS有什么区别?
- 如何判断是否内网访问OBS?
- 我的OBS桶性能是否会受其他用户业务的影响?
- OBS总览页数据不一致的原因是什么?
- 境外数据传输回国场景下的丢包和网络稳定性问题
-
计费相关
- 桶内无对象,为什么还会产生存储费用?
- 桶内无对象为什么会产生流量?
- 已购买资源包,为什么仍然扣费?
- 配置CDN回源,并购买回源流量包,计费未走回源流量包
- 账号欠费后已充值,为什么OBS资源仍然不可用?
- 资源包是否必须购买?是否能指定给具体的桶使用?
- 资源包是否支持退订或修改?
- 资源包到期后OBS资源会如何处理?
- 并行文件系统是否支持资源包?
- 请求次数是如何计算的?
- 是否支持购买请求次数?
- OBS存储资源包使用超量后是否会限制对桶的写入
- 当月未用完的资源包用量是否会结转到下个月?
- 哪些资源包会按月更新额度,哪些不会?
- 购买了回源流量包是否还需要购买公网流出流量包?
- 如何购买专属对象存储?
- OBS账单为什么会出现0.01元的计费?
- 查询账单时,为什么会有大量的公网流出流量?
- 权限相关
-
桶和对象相关
- 创建桶失败
- 上传对象失败
- 下载对象失败
- 删除桶失败
- 删除对象失败
- 通过URL访问对象失败
- 如何在浏览器中在线预览OBS中的对象?
- 我可以修改对象名称吗?
- 我可以在线编辑OBS中的对象吗?
- 如何获取对象访问路径?
- 我可以修改桶所在的区域吗?
- 如何修改桶所属的企业项目?
- 我可以在桶间进行文件复制吗?
- 我可以在桶间进行文件移动吗?
- 我可以上传同名对象到同一个文件夹中吗?
- OBS是否支持断点续传功能?
- OBS是否支持批量上传文件?
- OBS是否支持批量下载文件?
- OBS是否支持批量删除对象或清空桶?
- 无法搜索到桶中对象或对象不存在返回403
- 使用IE浏览器访问带有中文字符的对象URL地址报错如何处理?
- 为什么配置了跨域访问OBS(CORS)仍然报错?
- 如何查看桶内的文件夹大小?
- 如何上传超过5GB的大对象?
- 数据安全、迁移和备份
- 多版本控制
- 服务端加密
- 跨区域复制
- 域名管理
- 静态网站托管
- 图片处理
- 并行文件系统
- 监控
- OBS控制台使用相关
- OBS Browser+和obsutil等工具相关
- API和SDK等开发者相关
- Data+
-
产品咨询
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
通过CDN加速访问OBS
背景介绍
现在越来越多的行业使用OBS存储图片、视频、软件包等静态资源文件,并将OBS作为网站、论坛、APP、游戏等业务的存储源。在需要获取这些静态资源时,用户通过URL直接从OBS请求数据,数据请求过程如图1所示。OBS能够很好的解决本地存储不够用的难题,但一般情况下文件只存储在一个区域,不同区域的用户访问OBS的响应速度存在差异。在需要频繁访问的场景下,直接访问OBS来获取相应文件,还会消耗大量的流量费用。
方案说明
OBS提供低成本的存储,华为云CDN可以提供网站加速、文件下载加速和点播加速。将数据存放在OBS中然后通过配置CDN加速,这样构造的业务系统可以在降低成本的同时,提高终端用户使用感受。当终端用户发起访问请求时,会首先通过CDN查找对此域名响应速度最快的CDN节点,并查询此节点是否有缓存终端用户请求的内容。
在CDN节点没有缓存用户请求的数据或缓存到期的情况下,CDN加速访问OBS的示意图如图2所示。
当其他终端用户再次访问相同的数据时,CDN将直接返回缓存的数据给终端用户,而无需再向OBS发起访问请求。在CDN有缓存的情况下,CDN加速访问OBS的示意图如图3所示。
方案优势
- 低成本:OBS提供CDN回源流量包折扣方式,使CDN从OBS获取数据时流量费用更低。当数据缓存至CDN节点时,后续请求都将通过CDN回源流量计费,从而减少OBS费用。
- 高效率:华为云CDN具有加速资源丰富、节点分布广泛优势,保证将用户请求精准调度至更优的边缘节点,提供有效且稳定的加速效果。
适用场景
- 通过OBS提供文件下载业务的应用或服务。例如:通过http/https提供文件下载业务的网站、工具下载、游戏客户端、APP商店等。
- 通过OBS提供音视频点播业务的应用或服务。例如:在线教育类网站、在线视频分享网站、互联网电视点播平台、音乐视频点播APP等。
约束与限制
只有桶版本号为3.0及以上的桶支持此方案。桶版本号可以在OBS控制台上,进入桶对象页面后单击“概览”,在“基本信息”中查看。
配置方法
- 手动配置:以点播加速为例,操作步骤请参见通过CDN加速OBS视频点播方案介绍。
- 一键部署:当前部分区域支持一键部署,详见一键部署CDN下载加速。
应用场景
传统的点播服务会加大服务器的负载,并消耗巨大的带宽资源,同时又无法保证终端用户访问时需要的高速体验。
将数据存放在OBS中然后通过配置CDN加速,这样构造的业务系统可以在降低成本的同时,提高终端用户使用感受。
本方案适用于提供音视频点播服务的客户。例如:在线教育类网站、在线视频分享网站、互联网电视点播平台、音乐视频点播APP等。
方案架构
![](https://support.huaweicloud.com/bestpractice-obs/zh-cn_image_0000001983392145.png)
- 客户在CDN控制台配置加速域名。
- 终端用户A通过浏览器或APP发出请求数据,经DNS解析转向CDN节点。
- CDN节点从OBS桶中拉取数据,OBS返回数据。
- 数据返回至终端用户A。
- 终端用户B访问同一数据,通过浏览器或APP发出请求数据,经DNS解析转向CDN节点。
- 经过终端用户A的访问,CDN节点有缓存数据,直接返回所需数据至终端用户B。
方案优势
- OBS安全、高可靠且低成本,可以节省存储费用。
- 通过分布在各个区域的CDN节点,将音视频内容扩展到距离终端用户较近的地方,用户可以享受更加流畅的点播体验。
- 华为云CDN与华为云OBS通过内网连接,节省带宽费用。
综上,客户可以通过更低的费用,为终端用户提供更加优质的视频点播服务。
资源与成本规划
维度 |
说明 |
---|---|
资源规划 |
必选
|
成本规划 |
必选 可选 回源流量包:当回源获取数据时,CDN访问OBS会产生回源流量。OBS提供回源流量包,可以减少回源流量产生的流量费用。
须知:
本文提供的成本预估费用仅供参考,资源的实际费用以华为云管理控制台显示为准。 |
操作流程
实施步骤
- (可选)购买CDN回源流量包
当回源获取数据时,CDN访问OBS会产生回源流量。OBS提供回源流量包,可以减少回源流量产生的流量费用。如果未购买回源流量包,将按需走公网流出流量扣费。
- 进入购买资源包页面。
- 根据实际业务需求配置以下参数。
- 区域:选择待配置CDN加速的桶所在区域。
- 资源包类型:选择“回源流量包”。
- 每月流量:根据每月实际流量使用情况选择合适的规格。
- 购买数量:输入购买回源流量包的数量。与每月流量结合,以组成不同规格的回源流量包。例如购买2个每月1TB的回源流量包,则实得流量为2TB。
- 购买时长:选择需要购买的回源流量包时长。
- 生效时间:根据实际情况选择“支付完成后立即生效”或“指定生效时间”。
- 单击“加入清单”。
- 在右侧资源包清单中确认资源包信息,单击“立即购买”。
- 配置CDN点播加速
OBS支持域名管理功能,在OBS上绑定用户域名即可实现使用自定义域名访问OBS,并可以在绑定后配置CDN加速。
- 登录华为云控制台,在控制台首页选择“存储 > 对象存储服务 OBS”,进入OBS管理控制台。
- 单击存放软件包的桶名称,此处以“my-video”为例。
- 在左侧导航栏选择“域名管理”,单击“配置加速域名”。
- 在“配置加速域名”弹框中配置CDN加速信息,如图5所示。
- 服务范围:根据需要选择。
- 业务类型:选择“点播加速”。
- 加速域名:输入视频网站域名,此处以“click.my-video.com”为例。
- 单击“确定加速”。
- 配置CNAME
在OBS绑定用户域名并配置CDN加速后,CDN会自动生成一条CNAME域名。通过在域名服务商处配置CNAME记录,将加速域名以CNAME方式指向CDN服务中对应的CNAME域名,域名解析生效后,该域名的所有请求都将转向CDN节点。本示例中自动生成的CNAME域名为“click.my-video.com.c.cdnhwc1.com”。
不同DNS服务商的CNAME配置方式不同,此处以华为云云解析服务为例。其他DNS服务商的CNAME配置方法可参考配置CNAME域名解析。- 登录华为云控制台,在控制台首页选择“网络 > 云解析服务 DNS”,进入云解析服务页面。
- 在左侧菜单栏中,选择“公网解析”,进入公网域名列表页面。
- 在待添加记录集的域名所在行,单击“域名”列的域名名称。本实践中对应的域名为“my-video.com.”。
- 单击“添加记录集”,进入“添加记录集”页面。
- 根据界面提示填写参数配置,参数信息如表2所示。下表中未提到的参数可保持默认值。
表2 参数说明 参数
参数说明
取值样例
主机记录
主机记录指域名前缀。
click
类型
记录集的类型,此处为CNAME类型。
CNAME-将域名指向另外一个域名
别名
用于是否将此记录集关联至云服务资源实例。
否
线路类型
用于DNS服务器在解析域名时,根据访问者的来源,返回对应的服务器IP地址。
添加解析线路类型时,切记先添加默认线路类型,以保证网站可访问。
全网默认
TTL(秒)
TTL指解析记录在本地DNS服务器的有效缓存时间。如果您的服务地址经常更换,建议TTL值设置相对小些,反之,建议设置相对大些。
默认为“5分钟”,即300s
值
需指向的域名。
如果没有开启CDN加速,该值为桶访问域名;如果开启CDN加速后,该值为CDN分配的CNAME域名。
click.my-video.com.c.cdnhwc1.com
- 单击“确定”,完成添加。
- 验证CNAME配置是否生效。
nslookup -qt=cname 桶绑定的自定义域名
本实践中桶绑定的自定义域名为“click.my-video.com”。如果回显CDN分配的CNAME域名,则表示CNAME配置已经生效。
- 开启私有桶回源
由于当前存储软件包的桶为私有桶,需要前往CDN开启私有桶回源,CDN才能从OBS中回源获取数据。
- 登录华为云控制台,在控制台首页选择“CDN与智能边缘 > CDN”,进入CDN控制台。
- 在左侧菜单栏中,选择“域名管理”。
- 在域名列表中,单击需要修改的域名或域名所在行的“设置”,进入域名配置页面。本实践中对应的域名为“download.game-apk.com”。
- 选择“基本配置”页签。
- 在源站配置模块,单击编辑。
- 选择源站类型为OBS桶域名,桶类型选择“私有桶”,其余选项配置请参见CDN源站配置。
- 单击“保存”按钮,完成源站添加。
- 如果您账号下的此域名是初次配置OBS私有桶回源,您还需要先对CDN进行云资源委托授权,授权成功后CDN将有权限访问您账号下的OBS私有桶,授权操作请参见OBS委托授权。
说明:
请勿删除CDN针对OBS的委托关系,否则会导致CDN无法在回源时从OBS私有桶获取相应资源。
- 配置点播URL
将代码中需要点播加速的文件URL地址配置为:视频网站域名+文件在OBS桶中的存储路径+文件名称。
以步骤2配置的视频网站域名click.my-video.com以及存储在my-video桶中的video/3.2.1/文件夹下的introduction.mp4文件为例,文件点播URL的配置如下:
https://click.my-video.com/video/3.2.1/introduction.mp4
- 配置OBS高级桶策略,避免私有桶内对象被匿名用户列举
开启私有桶回源后,任何匿名用户访问桶的自定义域名(CDN加速域名),均可以成功列举桶根目录中的对象,导致对象列表暴露在公网。因此,如果不希望任何人都能列举桶内对象,还需要配置两条高级桶策略,仅允许指定用户列举桶内对象。
- 登录华为云控制台,在控制台首页选择“存储 > 对象存储服务 OBS”,进入OBS管理控制台。
- 单击存放软件包的桶名称(即开启了私有桶回源的OBS桶),本例中为“my-video”。
- 在左侧导航栏选择“访问权限控制 > 桶策略”。
- 单击“创建”,创建第一条桶策略。
- 根据使用习惯,策略配置方式以可视化视图为例。单击“可视化视图”。
- 配置如下参数。
- 单击右下角的“创建”,完成第一条桶策略创建。
- 再次单击“创建”,创建第二条桶策略。
- 根据使用习惯,策略配置方式以可视化视图为例。单击“可视化视图”。
- 配置如下参数。
本条策略的含义:允许指定的用户拥有桶的列举权限(List*)。此处指定的用户需要和上一条策略保持一致。
说明:
Q:为什么还要配置第二条允许列举的桶策略?
A:由于在控制台普通模式下创建桶策略,被授权用户无法指定到当前账号本身。所以在第一条桶策略中,被授权用户无论选择与账号同名的IAM用户或其他IAM用户,实际都把当前账号本身排除在外了。这些IAM用户之前有私有桶的列举权限,是因为账号在IAM中进行了授权。但在第一条桶策略配置完成后,账号本身不再有列举权限,导致无法给这些IAM用户授予列举权限,所以当前这些IAM用户的列举权限为默认Deny。基于显示Deny > Allow > 默认Deny的原则,还需要配置一条允许列举的桶策略,才能让这些IAM用户实现正常列举。
表4 桶策略参数配置说明 参数
说明
策略名称
输入自定义的桶策略名称
策略内容
效力
允许
被授权用户
- 被授权用户:当前账号
- 子账号:选择允许列举桶内对象的用户。需要和第一条桶策略保持一致
授权资源
- 资源范围:当前桶
授权操作
- 动作范围:自定义配置
- 选择动作:List*
- 单击右下角的“创建”,完成第二条桶策略创建。
- 登录CDN控制台,在“预热刷新 > 缓存刷新”中,刷新CDN缓存,使桶策略在CDN加速域名生效。
刷新缓存时选择“URL”类型,输入的URL为配置文件点播URL中添加的文件点播URL,本例中为:
https://click.my-video.com/video/3.2.1/introduction.mp4
- 验证业务
待视频网站重新部署后,登录视频网站,点播视频文件。
如果视频可以成功点播,则表示加速配置成功。