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 |