错误码
调用接口出错后,将不会返回结果数据。调用方可根据每个接口对应的错误码来定位错误原因。 当调用出错时,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 | CustomDomainAlreadyExist | 配置了已存在的域。 | 已经配置过了,不需要再配置。 |
| 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 | 该操作只有特殊用户可使用。 | 请提交工单寻求技术支持。 |
| 400 Bad Request | ContentSHA256Mismatch | 客户端与服务端计算的对象的SHA256值不一致。 | 建议重新确认客户端计算的对象的SHA256的值是否正确。 |
| 400 Bad Request | InsecureDownloadForbidden | 不安全对象下载,禁止使用桶默认域名通过公网访问后缀为.apk或者.ipa的对象。 | 通过自定义域名访问后缀为.apk或者.ipa的对象。注意,您的自定义域名使用前须完成ICP备案。 |
| 400 Bad Request | FileGatewayBucket | 并行文件系统不支持配置桶清单。 | 请使用对象桶。 |
| 400 Bad Request | ForbidAnonReqOverwriteRespHead | 匿名用户调用下载对象接口时,不能重写响应头。 | 请删除重写响应头参数,或者携带签名调用下载对象接口。 |
| 403 Forbidden | AccessDenied | 拒绝访问,请求没有携带日期头域或者头域格式错误。 | 请求携带正确的日期头域。 |
| 403 Forbidden | AccessDenied | 试图修改或删除受WORM保护的对象。 | 等待WORM保护过期后再修改或删除。 |
| 403 Forbidden | AccessDenied | 拒绝访问,设置公开桶策略或公开ACL被拒绝。 | 设置非公开桶策略或非公开ACL。 |
| 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和签名计算方法。详细排查方法请参见签名不匹配(SignatureDoesNotMatch)如何处理。 |
| 403 Forbidden | VirtualHostDomainRequired | 未使用虚拟主机访问域名。 | Host使用虚拟主机访问域名。 |
| 403 Forbidden | Unauthorized | 用户未实名认证。 | 请实名认证后重试。 |
| 403 Forbidden | UserRestricted | ||
| 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 | 并行文件系统不支持该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 Conflict | FsObjectConflict | 并行文件系统中,文件和目录不支持互相覆盖,或者重命名的目标文件已经存在。 | 请确认待覆盖的目标类型(是文件还是目录),请确认重命名的目标文件是否存在。 |
| 409 Conflict | FsRenameConflict | 重命名操作时,另外一个冲突的操作当前正作用在这个对象上 | 排查业务逻辑,避免对同一个对象做并发操作导致操作结果不被预期 |
| 409 Conflict | DirectoryNotEmpty | 非空目录对象不能被直接删除 | 先清空此目录对象下的全部对象,再删除这个目录对象 |
| 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重试。 |
| 429 Too Many Requests | TooManyRequests | 短时间内请求量过多。 例如针对同一个对象/桶的元数据并发请求量过多,包括并发修改对象元数据、上传对象、修改写对象等接口。 | 请减少请求量或并发数。 |
| 500 Internal Server Error | InternalError | 系统遇到内部错误,请重试。 | 请提交工单寻求技术支持。 |
| 501 Not Implemented | ServiceNotImplemented | 请求的方法服务端没有实现。 | 当前不支持,请提交工单寻求技术支持。 |
| 503 Service Unavailable | ServiceUnavailable | 服务器过载或者内部错误异常。 | 等待一段时间后重试,或提交工单寻求技术支持。 |
| 503 Service Unavailable | SlowDown | 高并发请求导致访问异常 | 请降低请求频率。 |
| 状态码 | 错误码 | 错误信息 | 处理措施 |
|---|---|---|---|
| 500 Internal Server Error | SYS.0001 | 内部服务错误 | 请提交工单寻求技术支持。 |
| 404 Not Found | SYS.0003 | 不支持的API | 请更换API。 |
| 401 Unauthorized | SYS.0004 | 请求未认证 | 请提交工单寻求技术支持。 |
| 403 Forbidden | SYS.0005 | 没有访问权限 | 请提交工单寻求技术支持。 |
| 400 Bad Request | SYS.0006 | 请求格式错误 | 请检查请求格式。 |
| 400 Bad Request | SYS.0007 | 无效的range下载请求 | 请提交工单寻求技术支持。 |
| 500 Internal Server Error | SYS.0008 | Token过期 | 请输入有效的token。 |
| 431 Request Header Fields Too Large | SYS.0009 | HTTP请求Header超过系统限制 | 请减少HTTP请求中Header数量。 |
| 400 Bad Request | SYS.0010 | 请求参数非法 | 请检查请求参数。 |
| 429 Too Many Requests | SYS.0011 | 请求量过多 | 请减少请求量。 |
| 400 Bad Request | SYS.0012 | 请求体过大 | 请减小请求体。 |
| 403 Forbidden | SYS.0013 | 权限变化,需要更新token | 请更新token。 |
| 404 Not Found | SYS.0014 | 桶不存在 | 请更换桶名。 |
| 404 Not Found | SYS.0015 | OBS对象不存在 | 请更换对象名。 |
| 500 Internal Server Error | SYS.0016 | 访问OBS服务错误 | 请提交工单寻求技术支持。 |
| 500 Internal Server Error | SYS.0018 | 内部请求错误,可能原因:格式错误,网络不通 | 请检查请求格式和网络。 |
| 500 Internal Server Error | SYS.0019 | 访问桶策略服务失败 | 请提交工单寻求技术支持。 |
| 500 Internal Server Error | SYS.0020 | 访问后台任务管理服务错误 | 请提交工单寻求技术支持。 |
| 403 Forbidden | SYS.0021 | 账号受限 | 请充值。 |
| 403 Forbidden | SYS.0022 | 账号冻结 | 请充值或重新开户。 |
| 400 Bad Request | SYS.0023 | 区域不匹配 | 请更换区域。 |
| 500 Internal Server Error | SYS.0024 | 访问授权服务失败 | 请提交工单寻求技术支持。 |
| 500 Internal Server Error | SYS.0025 | 不正确的响应内容 | 请提交工单寻求技术支持。 |
| 500 Internal Server Error | SYS.0026 | 读响应内容错误 | 请提交工单寻求技术支持。 |
| 400 Bad Request | SYS.0027 | 委托没有赋予任何权限 | 请提交工单寻求技术支持。 |
| 400 Bad Request | SYS.0028 | 委托不存在 | 请更换委托。 |
| 400 Bad Request | SYS.0029 | 非法的OBS区域域名 | 请更换OBS区域域名。 |
| 400 Bad Request | SYS.0030 | 不匹配本区域的OBS区域域名 | 请更换OBS区域域名。 |
| 500 Internal Server Error | SYS.0031 | 授权OBS自动创建委托失败 | 请提交工单寻求技术支持。 |
| 500 Internal Server Error | SYS.0032 | 授权OBS自动修改委托失败 | 请提交工单寻求技术支持。 |
| 500 Internal Server Error | SYS.0033 | 授权OBS自动创建自定义权限失败 | 请提交工单寻求技术支持。 |
| 500 Internal Server Error | SYS.0034 | 授权OBS自动获取自定义权限失败 | 请提交工单寻求技术支持。 |
| 500 Internal Server Error | SYS.0035 | 授权OBS自动更新自定义权限失败 | 请提交工单寻求技术支持。 |
| 400 Bad Request | SYS.0036 | 项目ID无效 | 请更换项目ID。 |
| 400 Bad Request | SYS.0037 | 委托赋予的权限不足 | 请提交工单寻求技术支持。 |
| 400 Bad Request | SYS.0038 | 不支持range多区间请求下载 | 请提交工单寻求技术支持。 |
| 500 Internal Server Error | SYS.0039 | 账号ID非法 | 请输入正确的租户ID。 |
| 500 Internal Server Error | SYS.0040 | 初始化SDK客户端错误 | 请提交工单寻求技术支持。 |
| 400 Bad Request | SYS.0041 | 替换魔法参数失败 | 请提交工单寻求技术支持。 |
| 500 Internal Server Error | SYS.0042 | 服务端处理超时 | 请提交工单寻求技术支持。 |
| 500 Internal Server Error | SYS.0043 | Json字符串反序列化失败 | 请提交工单寻求技术支持。 |
| 500 Internal Server Error | SYS.0044 | 获取内部缓存状态错误 | 请提交工单寻求技术支持。 |