Asset.stat方法bug:当AK或SK错误,会导致异常
Closed this issue · 3 comments
binsee commented
Asset.stat 方法没有对request返回的http状态码进行检查,导致在AK或SK错误的情况下会报错:
SyntaxError: Unexpected end of input
at Object.parse (native)
at Request._callback (E:\..................\node_modules\node-qiniu\lib\asset.js:132:29)
查了一下资料并进行对比了一下,好像这个其实是七牛官方那边接口有点问题,官方的文档标注:
如果请求失败,返回包含如下内容的JSON字符串(已格式化,便于阅读):
{ "error": "<errMsg string>" }
字段名称 必填 说明 error 是 与HTTP状态码对应的消息文本 响应状态码
HTTP状态码 含义 200 获取Metadata成功 400 请求报文格式错误 401 管理凭证无效 599 服务端操作失败 如遇此错误,请将完整错误信息(包括所有HTTP响应头部)通过邮件发送给我们 612 目标资源不存在
另外,还有一些没有标注出来
但实际上,631确实返回了包含error
的json格式内容{"error":"no such bucket"}
。
但401却没有返回json格式内容,内容长度是0
request err: null
request statusCode: 401
request body.length: 0
request body:
SyntaxError: Unexpected end of input
at Object.parse (native)
at Request._callback (E:\..................\node_modules\node-qiniu\lib\asset.js:132:29)
七牛官方接口固然是一方面,但这个库是否也该增加一层对res.statusCode
的检查呢?
iwillwen commented
謝提醒,我會盡快更新。
ikbear commented
我们验证下。