Este tópico descreve como tratar erros ao usar o OSS SDK for C.
Tratamento de exceções
Se ocorrer um erro durante uma requisição com o OSS SDK for C, o sistema retornará a mensagem correspondente em aos_status_s. A tabela a seguir detalha os erros presentes em aos_status_s.
|
Código de erro |
Descrição |
Tipo |
|
code |
Código de status HTTP da requisição com erro. |
Integer |
|
error_code |
Código de erro retornado pelo OSS. |
String |
|
error_msg |
Mensagem de erro retornada pelo OSS. |
String |
|
req_id |
UUID que identifica a requisição. |
String |
Tratamento de timeout
Se o código de status HTTP no parâmetro aos_status_t retornado não for 2xx e o error_code indicar -992 ou -995, houve timeout de conexão ou da requisição. Nesse caso, envie a requisição novamente.
Use a função aos_should_retry(aos_status_t *) no arquivo aos_status.h para verificar se o erro exige nova tentativa com base no valor retornado. Se o valor retornado for 1, tente novamente.
Códigos de erro comuns
|
Código de erro |
Descrição |
Código de status HTTP |
|
AccessDenied |
Acesso negado. |
403 |
|
BucketAlreadyExists |
O bucket já existe. |
409 |
|
BucketNotEmpty |
O bucket não está vazio. |
409 |
|
EntityTooLarge |
O tamanho da entidade excede o limite máximo. |
400 |
|
EntityTooSmall |
O tamanho da entidade está abaixo do limite mínimo. |
400 |
|
FileGroupTooLarge |
O tamanho do grupo de arquivos excede o limite máximo. |
400 |
|
FilePartNotExist |
A parte não existe. |
400 |
|
FilePartStale |
A parte expirou. |
400 |
|
InvalidArgument |
Formato de parâmetro inválido. |
400 |
|
InvalidAccessKeyId |
O AccessKey ID não existe. |
403 |
|
InvalidBucketName |
Nome do bucket inválido. |
400 |
|
InvalidDigest |
Digest inválido. |
400 |
|
InvalidObjectName |
Nome do objeto inválido. |
400 |
|
InvalidPart |
Parte inválida. |
400 |
|
InvalidPartOrder |
Sequência de partes inválida. |
400 |
|
InvalidTargetBucketForLogging |
Bucket para logging inválido. |
400 |
|
InternalError |
Ocorreu um erro interno no OSS. |
500 |
|
MalformedXML |
Formato XML inválido. |
400 |
|
MethodNotAllowed |
Método não suportado. |
405 |
|
MissingArgument |
Alguns parâmetros obrigatórios não foram especificados. |
411 |
|
MissingContentLength |
Comprimento do conteúdo ausente. |
411 |
|
NoSuchBucket |
O bucket não existe. |
404 |
|
NoSuchKey |
O objeto não existe. |
404 |
|
NoSuchUpload |
O ID de upload multipart não existe. |
404 |
|
NotImplemented |
Não é possível implementar o método. |
501 |
|
PreconditionFailed |
Ocorreu um erro durante o pré-processamento. |
412 |
|
RequestTimeTooSkewed |
A diferença de tempo entre o cliente OSS e o servidor OSS excede 15 minutos. |
403 |
|
RequestTimeout |
A requisição atingiu o timeout. |
400 |
|
SignatureDoesNotMatch |
Ocorreu um erro de assinatura. |
403 |
|
TooManyBuckets |
A quantidade de buckets excede o limite. |
400 |