OSS 回源功能

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 浅谈 OSS 回源功能,也称镜像回源,可以类比 Nginx 的 PCRE 满足一定条件下触发的 rewrite 功能,但是 OSS 的功能更加丰富。大致分为了两种主要功能,一种是 404 回源,另外是重定向回源。

作者:张医博


浅谈


OSS 回源功能,也称镜像回源,可以类比 Nginx 的 PCRE 满足一定条件下触发的 rewrite 功能,但是 OSS 的功能更加丰富。大致分为了两种主要功能,一种是 404 回源,另外是重定向回源。


使用的场景,一般是数据迁移、主备 OSS、CDN 结合 OSS、等多个场景。


功能说明


404


当客户请求到 OSS 获取资源时,如果 OSS 咨询不存在,那么会根据客户配置的镜像回源地址去拉去对应的资源,如果真正的源站有数据就会响应 OSS 200 ,OSS 会将文件一同存储到本地,并且透传给客户端 200 的状态码。


在这个过程中,如果 OSS 回源没有回去到资源,源站响应了 404 ,那么 OSS 也直接将 404 透传给用户。


如果 OSS 回源获取资源失败,源站返回了一个非 200 404 的状态码,比如 502,那 OSS 会记录 424 ,然后透传给源站的状态码 502 给客户端。


重定向


回源另外一个功能就是重定向,重定向,分为 301 、302、307。常用的就是 302 301,配置重定向功能后,客户端请求到 bucket A 后,会直接 302 301 到用户配置的 bucket B,客户端直接根据 301 302 follow 到目的 bucket B。


配置功能


2


这里不会给大家说全部的功能,因为详细使用官网有,我们着重说下标红的位置。



  • 文件前缀:如果勾选了文件前缀,择访问出现 404 后,只会针对匹配到的 OSS 前缀触发镜像回源,否则不会触发。
  • 回源参数:如果是 CDN 回源时会携带很多参数,想要保留这些参数透传到源站,可以开启此参数。
  • 允许 header:如果配置了允许 所有header ,默认将客户端请求过来的 header 全部透传给源站。
  • 禁止 header :可以自定义哪些 header 是不透传回源的。
  • 设置:触发回源后,可以自定义一些请求头透传给源站。

案例介绍


一、配置了镜像回源但是响应 404



  • 首先固定真正的源站访问同样的 URL 测试是否 200 ,只有源站响应了 200 的情况 OSS 回原才能获取到资源。
  • 看是否配置了透传所有 header 头选项,如果配置了该选项需要同时配置禁止 host 头透传回去,否则会出现回源时 404 的问题。因为镜像回源时会携带当前 bucket host 回源,所以目标源站肯定也响应 404 。

二、配置了镜像回源但是响应 502



  • 出现这种问题,都是客户源站响应超时导致,可以先固定源站的 URL 测试一下。
  • 分析对应时间点源站 error log 或者 access log 是否有 502 的情况,看下源站的网络链路负载等。

三、镜像回源的源站和访问的域名一致



  • 访问 www.a.com 资源 404 回源到 B.oss-cn-beijing.aliyuncs.com ,B bucket 上设置回源到 www.a.com ,这种情况是不可以的,会造成死循环的问题。
  • 访问 A.oss-cn-beijing.aliyuncs.com 资源 404 回源到 B.oss-cn-beijing.aliyuncs.com ,B bucket 设置的源站是 A bucket 也不行。

四、镜像回源报错 "Error status: 0 from mirror host ,should return 200 ok"


image


出现类似报错就是 OSS 在触发镜像回用户原站拉资源时,源站没有返回 200 的内容,而是返回了其他非 200 的状态码,导致拉取资源失败。
这种场景,用户端只要固定源站测试以下就可以知道问题。


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
7月前
|
存储 Java 对象存储
springboot配置阿里云OSS存储实现文件上传下载功能
【1月更文挑战第1天】springboot配置阿里云OSS存储实现文件上传下载功能
2217 2
|
对象存储 开发者
对象OSS生命周期(LifeCycle)管理功能|学习笔记
快速学习对象 OSS 生命周期(LifeCycle)管理功能
2630 0
对象OSS生命周期(LifeCycle)管理功能|学习笔记
|
存储 前端开发 Java
四步解决!OSS对象存储文件上传功能(服务端签名后直传,建议收藏)
普通上传方式通过InputStream作为OSS文件的数据源。用户(浏览器)把文件交给我们自已的服务器,再由服务器携带相关验证信息上传文件至阿里云,这种方式每上传一次,文件就会经过一次我们自已的服务器(占用大量带宽),我们的服务器也会在大量的用户下带来瓶颈。影响服务器处理别的请求,大大降低了效率。
3850 0
四步解决!OSS对象存储文件上传功能(服务端签名后直传,建议收藏)
|
3月前
|
存储 监控 数据可视化
SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
【9月更文挑战第2天】SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
164 9
|
6月前
|
存储 分布式计算 关系型数据库
实时数仓 Hologres产品使用合集之是否提供相应的功能接口和指令,可以将数据从OSS存储同步到Hologres中进行分析
实时数仓Hologres的基本概念和特点:1.一站式实时数仓引擎:Hologres集成了数据仓库、在线分析处理(OLAP)和在线服务(Serving)能力于一体,适合实时数据分析和决策支持场景。2.兼容PostgreSQL协议:Hologres支持标准SQL(兼容PostgreSQL协议和语法),使得迁移和集成变得简单。3.海量数据处理能力:能够处理PB级数据的多维分析和即席查询,支持高并发低延迟查询。4.实时性:支持数据的实时写入、实时更新和实时分析,满足对数据新鲜度要求高的业务场景。5.与大数据生态集成:与MaxCompute、Flink、DataWorks等阿里云产品深度融合,提供离在线
|
7月前
|
存储 对象存储 Python
Python中使用阿里云OSS存储实现文件上传和下载功能
Python中使用阿里云OSS存储实现文件上传和下载功能
1791 2
|
对象存储
OSS镜像回源不支持HEAD请求吗
OSS镜像回源不支持HEAD请求吗
|
存储 对象存储 索引
针对OSS数据集成场景下的功能全面优化【Dataphin V3.12]
OSS(Object Storage Service)是对象存储服务,适用于存放各种文件类型,Dataphin已经支持连接到OSS进行文件数据的读取与写入。本期版本升级中,Dataphin对于OSS的数据同步场景做了全面的功能升级,包括数据源、输入组件与数据组件,一起来了解一下吧~
301 0
|
存储 SQL JSON
使用SLS统计分析三方CDN回源OSS月95带宽实践
本文介绍通过使用阿里云日志服务SLS,对存储在SLS中的三方CDN回源阿里云OSS的监控日志数据,进行自定义查询分析之后得到按照不同运营商、不同业务类型(CND)纬度下,回源OSS的带宽月95量级数据,用于业务统计分析。
481 0
|
存储 前端开发 Java
四步解决!OSS对象存储文件上传功能(服务端签名后直传,建议收藏)
四步解决!OSS对象存储文件上传功能(服务端签名后直传,建议收藏)
2972 2
四步解决!OSS对象存储文件上传功能(服务端签名后直传,建议收藏)