错误码
调用接口出错后,将不会返回结果数据。调用方可根据每个接口对应的错误码来定位错误原因。 当调用出错时,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所示。
| 
        元素名称  | 
      
        描述  | 
     
|---|---|
| 
        Error  | 
      
        错误响应消息体XML结构中描述错误信息的根节点元素 。  | 
     
| 
        Code  | 
      
        错误响应消息体XML中错误响应对应的HTTP消息返回码,具体的错误码请参见表2。  | 
     
| 
        Message  | 
      
        错误响应消息体XML中具体错误更全面、详细的英文解释,具体的错误消息请参见表2。  | 
     
| 
        RequestId  | 
      
        本次错误请求的请求ID,用于错误定位。  | 
     
| 
        HostId  | 
      
        返回该消息的服务端ID。  | 
     
| 
        Resource  | 
      
        该错误相关的桶或对象资源。  | 
     
 
   许多错误响应包含其他的更丰富的错误信息, 建议将所有错误信息记入日志,方便程序员在诊断程序错误时阅读和理解。
错误码说明
在向OBS系统发出请求后,如果遇到错误,会在响应中包含响应的错误码描述错误信息。对象存储访问服务的错误码如表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  | 
     
      
 
  | 
     
       修改上传的policy中的条件或者减少对象大小。  | 
    
| 
       400 Bad Request  | 
     
       EntityTooSmall  | 
     
      
  | 
     
       修改上传的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  | 
     
       InvalidDefaultStorageClass  | 
     
       存储类别不可用。  | 
     
       请确认能够使用的存储类别。  | 
    
| 
       400 Bad Request  | 
     
       InvalidEncryptionAlgorithmError  | 
     
       错误的加密算法。下载SSE-C加密的对象,携带的加密头域错误,导致不能解密。  | 
     
       携带正确的加密头域下载对象。  | 
    
| 
       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  | 
     
       KMS.DisabledException  | 
     
       SSE-KMS加密方式下,主密钥被禁用。  | 
     
       更换密钥后重试,或联系技术支持。  | 
    
| 
       400 Bad Request  | 
     
       KMS.NotFoundException  | 
     
       SSE-KMS加密方式下,主密钥不存在。  | 
     
       携带正确的主密钥重试。  | 
    
| 
       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  | 
     
       DeregisterUserId  | 
     
       用户已经注销。  | 
     
       充值或重新开户。  | 
    
| 
       403 Forbidden  | 
     
       InArrearOrInsufficientBalance  | 
     
       用户欠费或余额不足而没有权限进行某种操作。  | 
     
       充值。  | 
    
| 
       403 Forbidden  | 
     
       InsufficientStorageSpace  | 
     
       存储空间不足。  | 
     
       超过配额限制,增加配额或删除部分对象。  | 
    
| 
       403 Forbidden  | 
     
       InvalidAccessKeyId  | 
     
       系统记录中不存在客户提供的Access Key Id。  | 
     
       携带正确的Access Key Id。  | 
    
| 
       403 Forbidden  | 
     
       InvalidObjectState  | 
     
       冷对象不能直接下载,需要先进行恢复才能下载。  | 
     
       先对对象进行恢复操作。  | 
    
| 
       403 Forbidden  | 
     
       NotSignedUp  | 
     
       你的账户还没有在系统中注册,必须先在系统中注册了才能使用该账户。  | 
     
       先注册OBS服务。  | 
    
| 
       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  | 
     
       请降低请求频率。  | 
     
       请降低请求频率。  |