本文介紹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 |