OSS callback功能常见问题分析

callback是OSS的一个重要功能,可以应用在数据同步等多个场景中,在使用过程中难免会遇到一些问题,有些问题通过错误提示比较难以排查。本文针对常见的一些问题详述原因及排查方法。

1、返回的body非json格式

1) 现象

  返回以下错误:

OSS callback功能常见问题分析_第1张图片

 

2) 原因:

  原因可能有两种,如下

A、应用服务器返回给OSS的body的确不是json格式。比如

OSS callback功能常见问题分析_第2张图片

Resp_body就不是合法的json格式,OSS就会报上述错误。这种一般比较明显,还有比较隐蔽的,比如应用服务器处理过程中抛了异常,导致没有按照预期返回给OSS,而是返回了一些栈信息等,也会导致OSS报上述错误。

B、应用服务器返回给OSS的body中带有bom头。这类错误常见于用php编写的应用服务器中,由于php返回了bom头,导致OSS收到的body中多了三个字节,不符合json格式,因此报上述错误。如果在应用服务器端抓包,可以看到以下信息。

OSS callback功能常见问题分析_第3张图片

其中ef bb bf这三个字节就是bom头。关于bom头的产生原因以及如何去除bom头的方法,网上有非常多的解释,google即可。

 

2、错误的status

1) 现象

  这是一类错误,有可能是502,或者400等,如下

         OSS callback功能常见问题分析_第4张图片

 

2) 原因

  400或者其他的status比如404/403等是指应用服务器返回给oss的http是400或者404/403等,正常情况下应用服务器必须返回200给OSS。502是由于应用服务器根本就没有起web服务,没有监听OSS发过来的回调请求。

 

3、超时

1) 现象

OSS callback功能常见问题分析_第5张图片

 

2) 原因

出于安全原因,OSS的回调请求只会等待5s钟,如果5s后还是没有返回,那么OSS就会主动断开与应用服务器的连接,并返回客户端这个错误,错误信息中的IP可以忽略。

 

比较常见的就是上述三种错误,尤以第一种错误的 B 情况最为隐蔽,如果想定位的话,最直接的方法就是在自己的应用服务器上抓包

你可能感兴趣的:(OSS callback功能常见问题分析)