OSS callback功能常见问题分析

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

1、返回的body非json格式

1) 现象

  返回以下错误:

9934a59f9845563f31512f7dae4e92b93d32f483

 

2) 原因:

  原因可能有两种,如下

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

7a9c34b3adcd2b0a04a886581e63a9c612768797

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

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

8885187bffb69d75d8d00a9a8885ecc224057c18

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

 

2、错误的status

1) 现象

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

         35f5fa480e5192e350574ca9199ece086fe25b52

 

2) 原因

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

 

3、超时

1) 现象

b7ae475fec5cda25251d185a3d43f8f8c0645040

 

2) 原因

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

 

比较常见的就是上述三种错误,尤以第一种错误的 B 情况最为隐蔽,如果想定位的话,最直接的方法就是在自己的应用服务器上抓包
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值