C错误处理

本文介绍OSS C SDK的错误处理。

异常处理

使用OSS C SDK时,如果请求出错,会在aos_status_s中输出相应的错误信息。aos_status_s包含以下信息。

错误码

描述

字符类型

code

出错请求的HTTP状态码。

整型

error_code

OSS的错误码。

字符串

error_msg

OSS的错误信息。

字符串

req_id

标识该次请求的UUID。

字符串

超时处理

如果返回的aos_status_t中的code不等于2XX,且error_code为-992或者-995时,表示链接超时或请求超时,可以重试。

使用aos_status.h中的aos_should_retry(aos_status_t *),判断返回的错误码是否需要重试。如果返回1,表示需要重试。

常见错误码

错误码

描述

HTTP 状态码

AccessDenied

拒绝访问

403

BucketAlreadyExists

存储空间已存在

409

BucketNotEmpty

存储空间非空

409

EntityTooLarge

实体过大

400

EntityTooSmall

实体过小

400

FileGroupTooLarge

文件组过大

400

FilePartNotExist

文件分片不存在

400

FilePartStale

文件分片过时

400

InvalidArgument

参数格式错误

400

InvalidAccessKeyId

AccessKey ID不存在

403

InvalidBucketName

无效的存储空间名称

400

InvalidDigest

无效的摘要

400

InvalidObjectName

无效的文件名称

400

InvalidPart

无效的分片

400

InvalidPartOrder

无效的分片顺序

400

InvalidTargetBucketForLogging

日志转存操作中指定用于存储日志记录的Bucket无效

400

InternalError

OSS内部错误

500

MalformedXML

XML格式非法

400

MethodNotAllowed

不支持该方法

405

MissingArgument

缺少参数

411

MissingContentLength

缺少内容长度

411

NoSuchBucket

存储空间不存在

404

NoSuchKey

文件不存在

404

NoSuchUpload

分片上传ID不存在

404

NotImplemented

无法处理的方法

501

PreconditionFailed

预处理错误

412

RequestTimeTooSkewed

客户端本地时间和OSS服务器时间相差超过15分钟

403

RequestTimeout

请求超时

400

SignatureDoesNotMatch

签名错误

403

TooManyBuckets

存储空间数量超过限制

400