文档中心 > 错误处理
错误处理

最近更新时间:2022-07-25

本文介绍Go SDK的错误处理。


错误处理示例

func HandleError(err error) {

    fmt.Println("panic err:", err)

    err = DeleteTestBucketAndObject()

    if err != nil {

        fmt.Println("DeleteTestBucketAndObject err:", err)

    }

    os.Exit(-1)

}


测试桶和文件处理示例

以下代码用于展示错误处理:

func DeleteTestBucketAndObject() error {

    sc := s3lib.NewS3(endpoint, accessKey, secretKey)

    err := sc.DeleteObject(bucketName, objectKey)

    if err != nil {

        return err

    }

 

    err = sc.DeleteBucket(bucketName)

    if err != nil {

        return err

    }

    return nil

}


UOS错误码

OS错误码列表如下:

错误码

描述

HTTP状态码

AccessDenied

拒绝访问

403

AuthorizationHeaderMalformed

授权头格式错误

400

AuthorizationQueryParametersError

请求参数不支持

400

BadDigest

MD5不匹配

400

BucketAlreadyExists

Bucket已经存在

409

BucketAlreadyOwnedByYou

Buckett已经存在并已拥有

409

BucketNotEmpty

Bucket不为空

409

TooManyBuckets

Bucket数量超过限度

400

CredentialMalformed

证书不被允许

400

EmptyEntity

无效的对象

400

EntityTooLarge

实体过大

400

EntityTooSmall

实体过小

400

ExpiredToken

请求已过期

403

InvalidArgument

参数格式错误

400

InvalidAccessKeyId

AccessKeyId不存在

403

InvalidAcl

无效的ACL

400

InvalidBucketName

无效的Bucket名称

400

InvalidContinuationToken

无效的延续令牌

400

InvalidCopySourceStorageClass

无效的复制源

400

InvalidCorsDocument

无效的跨域资源共享规则

400

InvalidDigest

无效的摘要

400

InvalidEncodingType

无效的编码类型

400

InvalidObjectName

无效的Object名称

400

InvalidPart

无效的Part

400

InvalidPartOrder

无效的Part顺序

400

InvalidPolicyDocument

无效的Policy文档

400

InvalidPosition

请求参数位置必须非负数

400

InvalidRequest

非法的请求

400

InvalidRange

超出请求范围

416

InvalidRegion

地域不匹配

400

InvalidSseHeader

无效的服务端加密配置

400

InvalidStorageClass

请求头指定的存储类无效

400

InternalError

UOS内部错误

500

InvalidAccessKeyId

密钥ID不匹配

400

IllegalVersioningConfigurationException

版本控制配置无效

400

MalformedExpires

日期超出范围

400

MalformedDate

无效的日期格式

400

MalformedXML

XML格式非法

400

MalformedPOSTRequest

Post请求的body格式非法

400

MalformedPolicy

无效的策略资源

400

MethodNotAllowed

不支持的方法

405

MissingFields

请求缺少字段

400

MissingContentLength

缺少内容长度

411

MissingContentMD5

缺少MD5

400

MissingRequestBodyError

请求内容为空

411

NoSuchBucket

Bucket不存在

404

NoSuchBucketLc

指定的Bucket没有配置生命周期

404

NoSuchBucketPolicy

Bucket策略不存在

404

NoSuchBucketCors

指定桶无cors

404

NoSuchKey

文件不存在

404

NoSuchUpload

Multipart   Upload ID不存在

404

NoSuchVersion

版本号不匹配

404

NotImplemented

无法处理的方法

501

ObjectNotAppendable

无法为不允许扩展对象执行扩展操作

409

PositionNotEqualToLength

position长度不匹配

409

PreconditionFailed

预处理错误

412

RequestTimeTooSkewed

客户端本地时间和UOS服务器时间相差超过15分钟

403

SignatureDoesNotMatch

签名错误

403

TooManyBuckets

用户的Bucket数目超过限制

400

UnsupportedAclConfigurationException

不支持请求的URL配置

400