使用cdn加速oss,访问cdn域名的视频URL特别慢

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
.cn 域名,1个 12个月
简介:

现象 使用cdn加速oss,视频存放在oss上,cdn域名开启了range回源,访问视频url打开特别慢


原因 视频meta信息在视频尾部,浏览器通常会发先发range(0-)请求在头部看不到meta信息,会中断请求再发个range请求获取视频尾部的字节信息,由于cdn域名开启了range回源,cdn会认为第一次range请求包含第二个,会把两个请求合并等第一range请求响应完毕才会处理第二个,这样获取视频尾部字节的range请求就会堵塞在那等第一个range请求导致打开响应时间非常长


分析


访问视频url时,首先cdn会响应200如下图



浏览器要播放视频,需要知道meta信息才会播放,所以浏览器会首先发个range请求去获取meta信息,range范围是“0-“,如下图



浏览器在获取部分字节后发现视频头部没有meta信息,这时候会中断请求,从下图可以看到获取了51KB左右中断了,重新发个range获取视频尾部一段字节来得到meta信息


由于cdn开通了range回源,cdn会合并回源请求,步骤1的请求已经包含这些range字节,所以cdn会等步骤1响应完后才会处理步骤2的range尾部内容请求,可以发现这个range请求处理30多s还是没有响应,浏览器又多次发range请求获取文件尾部信息,如下图获取多次都没有响应,都在等步骤1cdn回源oss的响应



3 步骤1响应完毕后,获取尾部的range请求才会响应,如下这个截图,响应成功,可以看到浏览器获取1M左右内容



如下截图可以看到浏览器在播放视频之前获取meta信息的两个请求,先读头部信息拉取51KB左右发现没有meta信息中断请求,再发range请求获取尾部信息,中间发起多个range请求都没有响应,最后响应可以看到拉取了1M左右大小获取到meta信息



获取到视频meta信息才开始播放,可以看到播放range48-408404477meta信息一般都是48字节



解决方案

1 关闭range回源,这样每次range请求都直接透传给oss,oss不会合并range请求会直接响应,不过这样会影响range回源效率,建议方案2


2 使用媒体转码服务把视频转码,转码成标准视频格式,meta信息在视频头部就好了



目录
相关文章
|
18天前
|
存储 应用服务中间件 开发工具
对象存储OSS-Python设置代理访问请求
通过 Python SDK 配置 nginx 代理地址请求阿里云 OSS 存储桶服务。示例代码展示了如何使用 RAM 账号进行身份验证,并通过代理下载指定对象到本地文件。
66 15
|
3月前
|
存储 人工智能 缓存
AI助理直击要害,从繁复中提炼精华——使用CDN加速访问OSS存储的图片
本案例介绍如何利用AI助理快速实现OSS存储的图片接入CDN,以加速图片访问。通过AI助理提炼关键操作步骤,避免在复杂文档中寻找解决方案。主要步骤包括开通CDN、添加加速域名、配置CNAME等。实测显示,接入CDN后图片加载时间显著缩短,验证了加速效果。此方法大幅提高了操作效率,降低了学习成本。
5491 16
|
3月前
|
存储 网络安全 对象存储
缺乏中间证书导致通过HTTPS协议访问OSS异常
【10月更文挑战第4天】缺乏中间证书导致通过HTTPS协议访问OSS异常
162 4
|
4月前
|
安全 CDN
阿里云CDN产品解读及全站加速在游戏行业的最佳实践!
阿里云CDN(内容分发网络)为全球用户提供快速、稳定、安全的内容分发加速服务,显著提升访问响应速度和成功率
111 13
|
5月前
|
NoSQL Serverless API
Serverless 架构实现弹幕场景问题之API Gateway和OSS域名未绑定成功的问题如何解决
Serverless 架构实现弹幕场景问题之API Gateway和OSS域名未绑定成功的问题如何解决
47 0
|
API 对象存储 数据安全/隐私保护
|
6月前
|
机器学习/深度学习 人工智能 专有云
人工智能平台PAI使用问题之怎么将DLC的数据写入到另一个阿里云主账号的OSS中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
2月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
5月前
|
存储 机器学习/深度学习 弹性计算
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
|
6月前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。