例外処理

OSS C SDK の使用中にリクエストエラーが発生した場合、対応するエラーメッセージが aos_status_s に出力されます。 aos_status_s の属性は次のとおりです。

エラーコード 説明 タイプ
code エラーリクエストの HTTP ステータスコード 整数
error_code OSS により返されたエラーコード 文字列
error_msg OSS により返されたエラーメッセージ 文字列
req_id リクエストを識別する UUID OSS 開発エンジニアに req_id を提供することでヘルプを求めることができます。 文字列

タイムアウト処理

返された aos_status_t のコードが "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 AccessKeyID が存在しません。 403
InvalidBucketName バケット名が無効です。 400
InvalidDigest ダイジェストが無効です。 400
InvalidObjectName オブジェクト名が無効です。 400
InvalidPart そのパーツは無効です。 400
InvalidPartOrder パーツ順番が無効です。 400
InvalidTargetBucketForLogging ログファイルを格納するバケットが無効です。 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 OSSClient に設定されている現地時間が、OSS サーバーに設定されている時間から 15 分以上ずれています。 403
RequestTimeout リクエストのタイムアウトです。 400
SignatureDoesNotMatch 署名が不一致です。 403
TooManyBuckets バケット数が上限を超えています。 400