Tous les produits
Search
Centre de documentation

Object Storage Service:Error handling (C SDK)

Dernière mise à jour :Aug 18, 2026

Cette rubrique explique comment gérer les erreurs lors de l'utilisation du SDK OSS pour C.

Gestion des exceptions

En cas d'erreur lors de l'envoi d'une requête avec le SDK OSS pour C, le message d'erreur correspondant figure dans la structure aos_status_s. Le tableau suivant décrit les champs d'erreur renvoyés dans aos_status_s.

Code d'erreur

Description

Type

code

Le code de statut HTTP de la requête ayant échoué.

Integer

error_code

Le code d'erreur renvoyé par OSS.

String

error_msg

Le message d'erreur renvoyé par OSS.

String

req_id

L'UUID identifiant la requête.

String

Gestion des délais d'attente

Si le code de statut HTTP du paramètre aos_status_t renvoyé n'est pas 2xx et que error_code vaut -992 ou -995, la connexion ou la requête a expiré. Renvoyez la requête.

Appelez aos_should_retry(aos_status_t *) depuis le fichier aos_status.h pour déterminer si une erreur nécessite une nouvelle tentative. Si la valeur renvoyée est 1, réessayez l'opération.

Codes d'erreur courants

Code d'erreur

Description

Code de statut HTTP

AccessDenied

L'accès est refusé.

403

BucketAlreadyExists

Le bucket existe déjà.

409

BucketNotEmpty

Le bucket n'est pas vide.

409

EntityTooLarge

La taille de l'entité dépasse la limite maximale.

400

EntityTooSmall

La taille de l'entité est inférieure à la limite minimale.

400

FileGroupTooLarge

La taille du groupe de fichiers dépasse la limite maximale.

400

FilePartNotExist

La partie n'existe pas.

400

FilePartStale

La partie a expiré.

400

InvalidArgument

Le format du paramètre est incorrect.

400

InvalidAccessKeyId

L'AccessKey ID n'existe pas.

403

InvalidBucketName

Le nom du bucket est incorrect.

400

InvalidDigest

Le condensé est incorrect.

400

InvalidObjectName

Le nom de l'objet est incorrect.

400

InvalidPart

La partie est incorrecte.

400

InvalidPartOrder

L'ordre des parties est incorrect.

400

InvalidTargetBucketForLogging

Le bucket cible pour la journalisation est incorrect.

400

InternalError

Une erreur interne s'est produite sur OSS.

500

MalformedXML

Le format XML est incorrect.

400

MethodNotAllowed

La méthode n'est pas prise en charge.

405

MissingArgument

Certains paramètres requis ne sont pas spécifiés.

411

MissingContentLength

La longueur du contenu est manquante.

411

NoSuchBucket

Le bucket n'existe pas.

404

NoSuchKey

L'objet n'existe pas.

404

NoSuchUpload

L'ID de téléchargement multipartie n'existe pas.

404

NotImplemented

La méthode n'est pas implémentée.

501

PreconditionFailed

Une erreur s'est produite lors du prétraitement.

412

RequestTimeTooSkewed

L'écart de temps entre le client OSS et le serveur OSS dépasse 15 minutes.

403

RequestTimeout

La requête a expiré.

400

SignatureDoesNotMatch

Une erreur de signature s'est produite.

403

TooManyBuckets

Le nombre de buckets dépasse la limite.

400