更新时间:2024-04-15 GMT+08:00

错误码

调用接口出错后,将不会返回结果数据。调用方可根据每个接口对应的错误码来定位错误原因。 当调用出错时,HTTP请求返回一个3xx,4xx或5xx的HTTP状态码。返回的消息体中是具体的错误代码及错误信息。

错误响应消息格式

当错误发生时,响应消息头中都会包含:

  • Content-Type: application/xml
  • 错误对应的3xx,4xx或5xx的HTTP状态码。

响应消息体中同样会包含对错误的描述信息。下面的错误响应消息体示例展示了所有REST错误响应中公共的元素。

1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?> 
<Error> 
<Code>NoSuchKey</Code> 
<Message>The resource you requested does not exist</Message> 
<Resource>/example-bucket/object</Resource> 
<RequestId>001B21A61C6C0000013402C4616D5285</RequestId> 
<HostId>RkRCRDJENDc5MzdGQkQ4OUY3MTI4NTQ3NDk2Mjg0M0FB 
QUFBQUFBYmJiYmJiYmJD</HostId> 
</Error>

各元素的具体含义如表1所示。

表1 错误响应消息元素

元素名称

描述

Error

错误响应消息体XML结构中描述错误信息的根节点元素 。

Code

错误响应消息体XML中错误响应对应的HTTP消息返回码,具体的错误码请参见表2

Message

错误响应消息体XML中具体错误更全面、详细的英文解释,具体的错误消息请参见表2

RequestId

本次错误请求的请求ID,用于错误定位。

HostId

返回该消息的服务端ID。

Resource

该错误相关的桶或对象资源。

许多错误响应包含其他的更丰富的错误信息, 建议将所有错误信息记入日志,方便程序员在诊断程序错误时阅读和理解。

错误码说明

在向OBS系统发出请求后,如果遇到错误,会在响应中包含响应的错误码描述错误信息。对象存储访问服务的错误码如表2所示。

表2 错误码

状态码

错误码

错误信息

处理措施

301 Moved Permanently

PermanentRedirect

尝试访问的桶必须使用指定的地址,请将以后的请求发送到这个地址。

按照返回的重定向地址发送请求。

301 Moved Permanently

WebsiteRedirect

Website请求缺少bucketName。

携带桶名后重试。

307 Moved Temporarily

TemporaryRedirect

临时重定向,当DNS更新时,请求将被重定向到桶。

会自动重定向,也可以将请求发送到重定向地址。

400 Bad Request

BadDigest

客户端指定的对象内容的MD5值与系统接收到的内容MD5值不一致。

检查头域中携带的MD5与消息体计算出来的MD5是否一致。

400 Bad Request

BadDomainName

域名不合法。

使用合法的域名。

400 Bad Request

BadRequest

请求参数不合法。

根据返回的错误消息体提示进行修改。

400 Bad Request

CustomDomainAreadyExist

配置了已存在的域。

已经配置过了,不需要再配置。

400 Bad Request

CustomDomainNotExist

删除不存在的域。

未配置或已经删除,无需删除。

400 Bad Request

EntityTooLarge

  • 通过SDK或API的PUT上传、POST上传和追加写超过5GB的文件
  • 上传段超过5GB
  • 设置的桶配置超过20KB
  • 超过post表单中policy限制的文件大小(用户可自定义)
  • 通过SDK或API的多段上传以及SDK的断点续传超过48.8TB的文

修改上传的policy中的条件或者减少对象大小。

400 Bad Request

EntityTooSmall

  • 上传段除最后一段小于100KB
  • 小于post表单中policy限制的文件大小(用户可自定义)

修改上传的policy中的条件或者增加对象大小。

400 Bad Request

IllegalLocationConstraintException

用户未带Location在非默认Region创桶。

请求发往默认Region创桶或带非默认Region的Location创桶。

400 Bad Request

IncompleteBody

由于网络原因或其他问题导致请求体未接受完整。

重新上传对象。

400 Bad Request

IncorrectNumberOfFilesInPost Request

每个POST请求都需要带一个上传的文件。

带上一个上传文件。

400 Bad Request

InvalidArgument

无效的参数。

根据返回的错误消息体提示进行修改。

400 Bad Request

InvalidBucket

请求访问的桶已不存在。

更换桶名。

400 Bad Request

InvalidBucketName

请求中指定的桶名无效,超长或带不允许的特殊字符。

更换桶名。

400 Bad Request

InvalidContentLength

Content-Length头域内容有误。

请检查封装头域或联系技术支持。

400 Bad Request

InvalidLocationConstraint

创建桶时,指定的Location不合法或不存在。

指定正确的Location创桶。

400 Bad Request

InvalidPart

一个或多个指定的段无法找到。这些段可能没有上传,或者指定的entity tag与段的entity tag不一致。

按照正确的段和entity tag合并段。

400 Bad Request

InvalidPartOrder

段列表的顺序不是升序,段列表必须按段号升序排列。

按段号升序排列后重新合并。

400 Bad Request

InvalidPolicyDocument

表单中的内容与策略文档中指定的条件不一致。

根据返回的错误消息体提示修改构造表单的policy重试。

400 Bad Request

InvalidRedirectLocation

无效的重定向地址。

指定正确的地址。

400 Bad Request

InvalidRequest

无效请求。

根据返回的错误消息体提示进行修改。

400 Bad Request

InvalidRequestBody

请求体无效,需要消息体的请求没有上传消息体。

按照正确的格式上传消息体。

400 Bad Request

InvalidTargetBucketForLogging

delivery group对目标桶无ACL权限。

对目标桶配置ACL权限后重试。

400 Bad Request

KeyTooLongError

提供的Key过长。

使用较短的Key。

400 Bad Request

MalformedACLError

提供的XML格式错误,或者不符合要求的格式。

使用正确的XML格式重试。

400 Bad Request

MalformedError

请求中携带的XML格式不正确。

使用正确的XML格式重试。

400 Bad Request

MalformedLoggingStatus

Logging的XML格式不正确。

使用正确的XML格式重试。

400 Bad Request

MalformedPolicy

Bucket policy检查不通过。

根据返回的错误消息体提示结合桶policy的要求进行修改。

400 Bad Request

MalformedQuotaError

Quota的XML格式不正确。

使用正确的XML格式重试。

400 Bad Request

MalformedXML

当用户发送了一个配置项的错误格式的XML会出现这样的错误。

使用正确的XML格式重试。

400 Bad Request

MaxMessageLengthExceeded

拷贝对象,带请求消息体。

拷贝对象不带消息体重试。

400 Bad Request

MetadataTooLarge

元数据消息头超过了允许的最大元数据大小。

减少元数据消息头。

400 Bad Request

MissingRegion

请求中缺少Region信息,且系统无默认Region。

请求中携带Region信息。

400 Bad Request

MissingRequestBodyError

当用户发送一个空的XML文档作为请求时会发生。

提供正确的XML文档。

400 Bad Request

MissingRequiredHeader

请求中缺少必要的头域。

提供必要的头域。

400 Bad Request

MissingSecurityHeader

请求缺少一个必须的头。

提供必要的头域。

400 Bad Request

MultipleContentLengths

多个Content-Length头域。

请检查封装头域或者联系技术支持。

400 Bad Request

TooManyBuckets

用户拥有的桶的数量达到了系统的上限,并且请求试图创建一个新桶。

删除部分桶后重试。

400 Bad Request

TooManyCustomDomains

配置了过多的用户域。

删除部分用户域后重试。

400 Bad Request

TooManyWrongSignature

因高频错误请求被拒绝服务。

更换正确的Access Key后重试。

400 Bad Request

UnexpectedContent

该请求需要消息体而客户端没带,或该请求不需要消息体而客户端带了。

根据说明重试。

400 Bad Request

UserKeyMustBeSpecified

该操作只有特殊用户可使用。

请联系技术支持。

403 Forbidden

AccessDenied

拒绝访问,请求没有携带日期头域或者头域格式错误。

请求携带正确的日期头域。

403 Forbidden

AccessForbidden

权限不足,桶未配置CORS或者CORS规则不匹配。

修改桶的CORS配置,或者根据桶的CORS配置发送匹配的OPTIONS请求。

403 Forbidden

AllAccessDisabled

用户无权限执行某操作。桶名为禁用关键字。

更换桶名。

403 Forbidden

InsufficientStorageSpace

存储空间不足。

超过配额限制,增加配额或删除部分对象。

403 Forbidden

InvalidAccessKeyId

系统记录中不存在客户提供的Access Key Id。

携带正确的Access Key Id。

403 Forbidden

RequestTimeTooSkewed

客户端发起请求的时间与OBS服务端的时间相差太大。

出于安全目的,OBS会校验客户端与OBS服务端的时间差,当该时间差大于15分钟时,OBS服务端会拒绝您的请求,从而出现此报错。

请检查客户端时间是否与当前OBS服务端时间相差太大。请根据本地UTC时间调整客户端时间后再访问。

403 Forbidden

SignatureDoesNotMatch

请求中带的签名与系统计算得到的签名不一致。

检查你的Secret Access Key和签名计算方法。

403 Forbidden

VirtualHostDomainRequired

未使用虚拟主机访问域名。

Host使用虚拟主机访问域名

403 Forbidden

Unauthorized

用户未实名认证。

请实名认证后重试。

404 Not Found

NoSuchBucket

指定的桶不存在。

先创桶再操作。

404 Not Found

NoSuchBucketPolicy

桶policy不存在。

先配置桶policy。

404 Not Found

NoSuchCORSConfiguration

CORS配置不存在。

先配置CORS。

404 Not Found

NoSuchCustomDomain

请求的用户域不存在。

先设置用户域。

404 Not Found

NoSuchKey

指定的Key不存在。

先上传对象。

404 Not Found

NoSuchLifecycleConfiguration

请求的LifeCycle不存在。

先配置LifeCycle。

404 Not Found

NoSuchUpload

指定的多段上传不存在。Upload ID不存在,或者多段上传已经终止或完成。

使用存在的段或重新初始化段。

404 Not Found

NoSuchVersion

请求中指定的version ID与现存的所有版本都不匹配。

使用正确的version ID。

404 Not Found

NoSuchWebsiteConfiguration

请求的Website不存在。

先配置Website。

405 Method Not Allowed

MethodNotAllowed

指定的方法不允许操作在请求的资源上。

对应返回的Message为:Specified method is not supported.

方法不允许。

405 Method Not Allowed

FsNotSupport

posix桶不支持该API。

方法不允许。

408 Request Timeout

RequestTimeout

用户与Server之间的socket连接在超时时间内没有进行读写操作。

检查网络后重试,或联系技术支持。

409 Conflict

BucketAlreadyExists

请求的桶名已经存在。桶的命名空间是系统中所有用户共用的,选择一个不同的桶名再重试一次。

更换桶名。

409 Conflict

BucketAlreadyOwnedByYou

发起该请求的用户已经创建过了这个名字的桶,并拥有这个桶。

不需要再创桶了。

409 Conflict

BucketNotEmpty

用户尝试删除的桶不为空。

先删除桶中对象,然后再删桶。

409 Conflict

InvalidBucketState

无效的桶状态,配置跨Region复制后不允许关闭桶多版本。

不关闭桶的多版本或取消跨Region复制。

409 Conflict

OperationAborted

另外一个冲突的操作当前正作用在这个资源上,请重试。

等待一段时间后重试。

409 Conflict

ServiceNotSupported

请求的方法服务端不支持。

服务端不支持,请联系技术支持。

409 ObjectNotAppendable

ObjectNotAppendable

该对象不支持追加上传

请确认桶类型,并行文件系统不支持追加上传。

411 Length Required

MissingContentLength

必须要提供HTTP消息头中的Content-Length字段。

提供Content-Length消息头。

412 Precondition Failed

PreconditionFailed

用户指定的先决条件中至少有一项没有包含。

根据返回消息体中的Condition提示进行修改。

414 URI Too Long

Request-URI Too Large

请求使用的URI过长

请减少URI的长度。

416 Client Requested Range Not Satisfiable

InvalidRange

请求的range不可获得。

携带正确的range重试。

500 Internal Server Error

InternalError

系统遇到内部错误,请重试。

请联系技术支持。

501 Not Implemented

ServiceNotImplemented

请求的方法服务端没有实现。

当前不支持,请联系技术支持。

503 Service Unavailable

ServiceUnavailable

服务器过载或者内部错误异常。

等待一段时间后重试,或联系技术支持。

503 Service Unavailable

SlowDown

请降低请求频率。

请降低请求频率。