Este tema describe cómo manejar los errores al utilizar OSS SDK for C.
Manejo de excepciones
Si ocurre un error al enviar una solicitud con OSS SDK for C, el mensaje correspondiente se devuelve en aos_status_s. La tabla a continuación describe los errores que devuelve aos_status_s.
|
Código de error |
Descripción |
Tipo |
|
code |
El código de estado HTTP de la solicitud con error. |
Integer |
|
error_code |
El código de error que devuelve OSS. |
String |
|
error_msg |
El mensaje de error que devuelve OSS. |
String |
|
req_id |
El UUID que identifica la solicitud. |
String |
Manejo de tiempos de espera
Si el código de estado HTTP en el parámetro aos_status_t devuelto no es 2xx y error_code indica -992 o -995, la conexión o la solicitud agotó su tiempo de espera. En este caso, envíe la solicitud de nuevo.
Utilice aos_should_retry(aos_status_t *) del archivo aos_status.h para determinar si un error requiere un reintento según el valor devuelto. Si se devuelve el valor 1, reintente la operación.
Códigos de error comunes
|
Código de error |
Descripción |
Código de estado HTTP |
|
AccessDenied |
Se denegó el acceso. |
403 |
|
BucketAlreadyExists |
El bucket ya existe. |
409 |
|
BucketNotEmpty |
El bucket no está vacío. |
409 |
|
EntityTooLarge |
El tamaño de la entidad supera el límite máximo. |
400 |
|
EntityTooSmall |
El tamaño de la entidad está por debajo del límite mínimo. |
400 |
|
FileGroupTooLarge |
El tamaño del grupo de archivos supera el límite máximo. |
400 |
|
FilePartNotExist |
La parte no existe. |
400 |
|
FilePartStale |
La parte caducó. |
400 |
|
InvalidArgument |
El formato del parámetro no es válido. |
400 |
|
InvalidAccessKeyId |
El ID de accesskey no existe. |
403 |
|
InvalidBucketName |
El nombre del bucket no es válido. |
400 |
|
InvalidDigest |
El resumen no es válido. |
400 |
|
InvalidObjectName |
El nombre del objeto no es válido. |
400 |
|
InvalidPart |
La parte no es válida. |
400 |
|
InvalidPartOrder |
La secuencia de partes no es válida. |
400 |
|
InvalidTargetBucketForLogging |
El bucket para el registro no es válido. |
400 |
|
InternalError |
Ocurrió un error interno en OSS. |
500 |
|
MalformedXML |
El formato XML no es válido. |
400 |
|
MethodNotAllowed |
El método no es compatible. |
405 |
|
MissingArgument |
No se especificaron algunos parámetros obligatorios. |
411 |
|
MissingContentLength |
Falta la longitud del contenido. |
411 |
|
NoSuchBucket |
El bucket no existe. |
404 |
|
NoSuchKey |
El objeto no existe. |
404 |
|
NoSuchUpload |
El ID de carga multiparte no existe. |
404 |
|
NotImplemented |
El método no se puede implementar. |
501 |
|
PreconditionFailed |
Ocurrió un error durante el preprocesamiento. |
412 |
|
RequestTimeTooSkewed |
La diferencia de tiempo entre el cliente de OSS y el servidor de OSS supera los 15 minutos. |
403 |
|
RequestTimeout |
La solicitud agotó su tiempo de espera. |
400 |
|
SignatureDoesNotMatch |
Ocurrió un error de firma. |
403 |
|
TooManyBuckets |
La cantidad de buckets supera el límite. |
400 |