SDK错误码(C SDK)
SDK错误码是C SDK通过 obs_status 枚举返回的状态码,用于标识请求执行结果,便于用户定位问题并做出适当的处理。
SDK错误码包含两部分:
| 常量名 | 原始值 | 说明 |
|---|---|---|
| OBS_STATUS_OK | 0 | 请求成功。 |
| OBS_STATUS_InitCurlFailed | 1 | 初始化curl失败。 |
| OBS_STATUS_InternalError | 2 | 内部错误。 |
| OBS_STATUS_OutOfMemory | 3 | 本地环境内存不足。 |
| OBS_STATUS_FailedToIInitializeRequest | 6 | 初始化请求失败。 |
| OBS_STATUS_XmlParseFailure | 23 | xml解析失败。 |
| OBS_STATUS_NameLookupError | 33 | 域名解析失败。 |
| OBS_STATUS_FailedToConnect | 34 | 无法连接到服务端。 |
| OBS_STATUS_ConnectionFailed | 36 | 网络连接失败。 |
| OBS_STATUS_PartialFile | 38 | 网络传输中断。 |
| OBS_STATUS_InvalidParameter | 39 | 参数非法。 |
| OBS_STATUS_NoToken | 40 | 当前并发数已经超过最大并发数(默认值1000)。此处的Token指并发请求令牌,非安全认证令牌。可通过set_online_request_max_count函数调整最大并发数。 |
| OBS_STATUS_OpenFileFailed | 41 | 打开文件失败。 |
| OBS_STATUS_AccessDenied | 43 | 请求被拒绝。 |
| OBS_STATUS_MalformedPolicy | 44 | 请求policy格式不正确。 |
| OBS_STATUS_MalformedXML | 45 | 请求xml格式不正确。 |
| OBS_STATUS_MethodNotAllowed | 46 | 请求方法不允许。 |
| OBS_STATUS_SignatureDoesNotMatch | 47 | 签名不匹配,检查ak、sk、token是否对应或有误。 |
| OBS_STATUS_ServiceUnavailable | 48 | 服务端异常。 |
| OBS_STATUS_SlowDown | 49 | 请求频率过快。 |
| 接口 | 函数签名 | 说明 |
|---|---|---|
| 获取错误描述 | const char *obs_get_status_name(obs_status status) | 根据错误码获取对应的错误描述字符串。 |
| 确认是否可重试 | int obs_status_is_retryable(obs_status status) | 判断指定错误码是否可重试,返回1表示可重试,0表示不可重试。 |
使用示例
// 获取错误描述
obs_status ret_status = obs_initialize(OBS_INIT_ALL);
if (OBS_STATUS_OK != ret_status)
{
printf("obs_initialize failed(%s).\n", obs_get_status_name(ret_status));
}
// 判断是否可重试
if (obs_status_is_retryable(ret_status))
{
printf("This error is retryable.\n");
}