更新时间:2026-07-13 GMT+08:00
分享

SDK错误码(C SDK)

SDK错误码是C SDK通过 obs_status 枚举返回的状态码,用于标识请求执行结果,便于用户定位问题并做出适当的处理。

SDK错误码包含两部分:

  • 对象存储服务的API错误码,详见OBS错误码
  • SDK自定义错误码,请参见表1
表1 obs_status

常量名

原始值

说明

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

请求频率过快。

表2 错误码相关接口

接口

函数签名

说明

获取错误描述

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");
}

相关文档