问题描述
某客户反馈自己在请求COS的时候会出现400的错误,400错误码产生的原因为:
HTTP 状态码 | 错误码 | 描述 |
---|---|---|
400 Bad Request | ActionAccelerateNotSupported | 加速域名不支持该操作 |
400 Bad Request | AttachmentFull | ACL 和 Policy 数量到达上限。详情请参见 规格与限制 |
400 Bad Request | BadDigest | 提供的 Content-MD5 值与服务端收到的请求体的 MD5 哈希值不一致 |
400 Bad Request | BadRquest | 参数错误 |
400 Bad Request | BucketAccelerateNotEnabled | 该存储桶未启用加速域名 |
400 Bad Request | BucketNameTooLong | 存储桶名称过长。详情请参见 存储桶命名规范 |
400 Bad Request | BucketVersionNotOpen | 存储桶未启用版本控制 |
400 Bad Request | DNSRecordVerifyFailed | DNS 记录验证失败,请添加 CNAME 或 TXT 记录。DNS 记录可能需要最多10分钟生效 |
400 Bad Request | EntitySizeNotMatch | 请求体大小与 Content-Length 请求头不符 |
400 Bad Request | EntityTooLarge | 上传的对象大小超过规定的最大值。详情请参见 规格与限制 |
400 Bad Request | EntityTooSmall | 上传的对象大小不足规定的最小值,常见于分块上传。详情请参见 规格与限制 |
400 Bad Request | ExpiredToken | 临时密钥 Token 已过期 |
400 Bad Request | ImageResolutionExceed | 图片分辨率超出限制或动图帧数过多 |
400 Bad Request | ImageTooLarge | 图片超过限制大小 |
400 Bad Request | IncompleteBody | 请求体大小小于 Content-Length 请求头 |
400 Bad Request | IncorrectNumberOfFilesInPostRequest | POST Object 请求每次只允许上传一个对象 |
400 Bad Request | InvalidArgument | 请求参数不合法,请确认是否允许携带该请求参数 |
400 Bad Request | InvalidBucketName | 存储桶名称不合法。详情请参见存储桶 命名规范 |
400 Bad Request | InvalidCopySource | 复制对象源不合法 |
400 Bad Request | InvalidDelimiter | 分隔符(delimiter)参数不合法,分隔符只能为一个字符 |
400 Bad Request | InvalidDigest | 给定的 Content-MD5 值不合法 |
400 Bad Request | InvalidImageFormat | 图片格式不合法 |
400 Bad Request | InvalidImageSource | 图片源不合法 |
400 Bad Request | InvalidLocationConstraint | 指定的 location 不合法 |
400 Bad Request | InvalidObjectName | 对象名称不合法。详情请参见 对象键 |
400 Bad Request | InvalidPart | 分块缺失 |
400 Bad Request | InvalidPartOrder | 分块的编号不连续 |
400 Bad Request | InvalidPicOperations | Pic-Operations 请求头不合法 |
400 Bad Request | InvalidPolicyDocument | POST Object 请求中的策略(Policy)不合法 |
400 Bad Request | InvalidRegionName | 不合法的地域名。详情请参见 地域和访问域名 |
400 Bad Request | InvalidRequest | 请求不合法 |
400 Bad Request | InvalidSHA1Digest | 请求内容 SHA1 校验不合法 |
400 Bad Request | InvalidTag | 存储桶标签不合法。详情请参见 存储桶标签概述 |
400 Bad Request | InvalidTargetBucketForLogging | 用于存放日志的目标存储桶不合法,目标存储桶必须与当前存储桶在同一个地域 |
400 Bad Request | InvalidUploadStatus | 当启用版本控制时不能使用 JSON API 上传对象,请使用 XML API |
400 Bad Request | InvalidURI | URI 不合法 |
400 Bad Request | InventoryFull | 清单任务数量已达到限制。清单任务上限1000条 |
400 Bad Request | JsonAPINotSupportOnMAZBucket | JSON API 不支持操作多 AZ 存储桶,请使用 XML API |
400 Bad Request | KeyTooLong | 对象键过长。详情请参见 对象键 |
400 Bad Request | KmsException | 密钥管理服务异常 |
400 Bad Request | KmsKeyDisabled | 提供的密钥已被禁用 |
400 Bad Request | KmsKeyNotExist | 提供的密钥不存在 |
400 Bad Request | ListPartUploadIdIsEmpty | UploadId 为空 |
400 Bad Request | LoggingConfExists | 日志配置已存在 |
400 Bad Request | LoggingPrefixInvalid | 日志前缀参数不合法 |
400 Bad Request | MalformedPolicy | 策略格式不合法 |
400 Bad Request | MalformedPOSTRequest | 该 POST 请求的请求体内容不合法 |
400 Bad Request | MalformedXML | 请求体的 XML 格式不符合 XML 语法 |
400 Bad Request | MAZOperationNotSupportOnOAZBucket | 单可用区(单 AZ)存储桶不支持多可用区(多 AZ)操作。关于多 AZ 特性及使用限制的说明请参见 多 AZ 特性概述The multiple availability zones operation is not supported by single availability zone bucket |
400 Bad Request | MissingRequestBodyError | 请求体缺失 |
400 Bad Request | MultiAZFeatureNotSupport | 当前地域不支持多可用区 |
400 Bad Request | MultiBucketNotSupport | 跨地域复制只能设置一个目的存储桶 |
400 Bad Request | NotifyRuleEventConflict | 通知规则 Event 冲突 |
400 Bad Request | NotifyRulePrefixConflict | 通知规则 Prefix 冲突 |
400 Bad Request | NotifyRuleSuffixConflict | 通知规则 Suffix 冲突 |
400 Bad Request | NotSupportedStorageClass | 指定的 存储类型 不支持 |
400 Bad Request | OAZOperationNotSupportOnMAZBucket | 多可用区存储桶不支持单可用区操作。关于多 AZ 特性及使用限制的说明请参见 多 AZ 特性概述The single availability zone operation is not supported by multiple availability zones bucket |
400 Bad Request | PolicyFull | ACL 和 Policy 数量到达上限。详情请参见 规格与限制 |
400 Bad Request | PolicyVersionFull | Policy 版本数量到达上限 |
400 Bad Request | RequestTimeout | 请求超时 |
400 Bad Request | SsecDecryptHeaderInvalid | 源文件使用 SSE-C 加密,需要在请求头中提供相同的密钥 |
400 Bad Request | SSEContentNotSupported | 加密方式不支持 |
400 Bad Request | SSEHeaderNotAllowed | 该操作不支持指定的服务端加密头部 |
400 Bad Request | TargetBucketNameInvalid | 目标存储桶名称不合法。详情请参见存储桶 命名规范 |
400 Bad Request | TooManyBuckets | 存储桶数目达到上限200 |
400 Bad Request | UnexpectedContent | 请求不支持相关内容 |
400 Bad Request | UserCnameInvalid | 用户指定的 CNAME 不存在或不合法 |
400 Bad Request | UserNetworkTooSlow | 用户的网络速度过慢 |
400 Bad Request | VerifyAlgorithmNotSupported | 校验算法不支持 |
400 Bad Request | WebsiteURLInvalid | 自定义域名 URL 不合法 |
400 Bad Request | XMLSizeLimit | XML 长度超过限制 |
可以通过对应返回body的Message信息来确定问题的原因,如下示例报错原因为请求参数不符合要求
代码语言:javascript复制[root@VM-0-152-centos ~]# curl -i http://XXX.cos.ap-beijing.myzijiebao.com?photos/v2
HTTP/1.1 400 Bad Request
Content-Type: application/xml
Content-Length: 456
Connection: keep-alive
Date: Sat, 02 Apr 2022 10:28:38 GMT
Server: tencent-cos
x-cos-request-id: XXX
x-cos-trace-id: XXXX
<?xml version='1.0' encoding='utf-8' ?>
<Error>
<Code>InvalidArgument</Code>
<Message>Invalid Argument</Message>
<Resource>XXX</Resource>
<RequestId>XXX</RequestId>
<TraceId>XXXX</TraceId>
</Error>
解决方案
400错误多为客户端请求的语法无效导致,可以通过报错提示信息去检查客户端请求的有效性,若自身无法检查出问题的原因可以联系腾讯云工程师进行进一步排查。