本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
本文介绍OSS返回400错误的原因和解决方案。
InvalidBucketName
The specified bucket is not valid
错误原因:Bucket命名不符合规范。
解决方案:检查并确保Bucket命名符合规范。
Bucket命名规范如下:
只包含小写字母、数字和短划线(-)。
以小写字母或者数字开头和结尾。
长度必须在3~63字符之间。
InvalidObjectName
The Object name can not be empty
错误原因:未指定Object名称。
解决方案:按照Object命名规范指定Object名称。
The Length of Object name must be less than 1024
错误原因:Object名称超出长度限制。
解决方案:确保Object名称长度必须在1~1023字符之间。
The specified object is not valid
错误原因:指定的Object名称无效。
解决方案:检查并确保Object命名符合规范。
Object命名规范如下:
使用UTF-8编码。
长度必须在1~1023字符之间。
不是以正斜线(/)或者反斜线(\)开头。
TooManyBuckets
You have attempted to create more buckets than allowed
RequestIsNotMultiPartContent
Bucket POST must be of the enclosure-type multipart/form-data
错误原因:Post操作提交表单编码不是
multipart/form-data
类型。解决方案:Post操作提交表单编码必须为
multipart/form-data
,即Header中Content-Type
为multipart/form-data;boundary=xxxxxx
形式,boundary
为边界字符串。详情请参见PostObject。
NotImplemented
A header you provided implies functionality that is not implemented
错误原因:封装API时传递了错误的或者不支持的参数。
解决方案:请参见API概览中相应的API,填写正确的参数格式。
MissingArgument
Missing Some Required Arguments
错误原因:封装API时缺少必选参数。
解决方案:请参见API概览中相应的API,补充必选参数。
InvalidArgument
Invalid Argument. Parameter is invalid
错误原因:参数格式不符合要求。
解决方案:请参见API概览中相应的API,填写正确的参数格式。
The callback signature version is invalid
错误原因:签名版本不支持。
解决方案:请确认当前签名为1.0或2.0版本。
Copy Source must mention the source bucket and key: /sourcebucket/sourcekey
错误原因:拷贝文件时,没有指定源Bucket和源Object。
解决方案:拷贝文件时,需按照
/sourcebucket/sourcekey
的格式指定拷贝的源地址参数x-oss-copy-source。例如源Bucket为examplebucket,源Object为exampleobject,则拷贝文件时x-oss-copy-source应指定为/examplebucket/exampleobject
。
KMSMasterKeyID is not applicable if the default sse algorithm is not KMS
错误原因:当SSEAlgorithm取值为AES256时,填写了KMSMasterKeyID。
解决方案:仅当SSEAlgorithm取值为KMS且使用指定的密钥加密时,需填写KMSMasterKeyID。
KMSMasterKeyID is not applicable if user is not in white list.或SM4 is not applicable if user is not in white list
错误原因:用户无操作权限。
解决方案:只有Bucket拥有者或者授权的RAM用户才能为Bucket设置加密规则。详情请参见PutBucketEncryption。
No such bucket storage class exists
错误原因:指定的Bucket存储类型不存在。
解决方案:OSS仅支持Standard(标准存储)、IA(低频访问存储)、Archive(归档存储)、ColdArchive(冷归档存储)、DeepColdArchive(深度冷归档存储)多种存储类型。详情请参见PutBucket。
Invalid version id specified
错误原因:指定的Object版本ID无效。
解决方案:请通过GetBucketVersions (ListObjectVersions)接口确认Bucket是否已开启版本控制,以及Object填写的版本ID是否正确。
Version id can not be the empty string
错误原因:未指定VersionId字段。
解决方案:请在VersionId字段中填写Object的版本ID。详情请参见ListObjectVersions(GetBucketVersions)。
Authorization header is invalid
错误原因:Authorization头部计算方法中涉及参数填写无效。
解决方案:请参考以下说明排查Authorization头部计算。
计算方法
Authorization = "OSS " + AccessKeyId + ":" + Signature Signature = base64(hmac-sha1(AccessKeySecret, VERB + "\n" + Content-MD5 + "\n" + Content-Type + "\n" + Date + "\n" + CanonicalizedOSSHeaders + CanonicalizedResource))
参数说明
参数
类型
是否必选
示例值
说明
AccessKeyId
字符串
是
LTAI********
密钥中的AccessKey ID。
AccessKeySecret
字符串
是
KZo1********
密钥中的AccessKey Secret。
VERB
枚举值
是
PUT
HTTP请求的Method,包含PUT、GET、POST、HEAD、DELETE、OPTIONS等。
\n
字符串
否
\n
换行符。
Content-MD5
字符串
否
eB5eJF1ptWaXm4bijSPyxw==
请求内容数据的MD5值,对消息内容(不包括头部)计算MD5值获得128比特位数字,对该数字进行base64编码得出。更多信息,请参见RFC2616 Content-MD5。
该请求头可用于消息合法性的检查(消息内容是否与发送时一致),也可以为空。
关于Content-MD5的计算方法,请参见Content-MD5的计算方法。
Content-Type
字符串
否
application/octet-stream
请求内容的类型,也可以为空。
Date
字符串
是
Sun, 22 Nov 2015 08:16:38 GMT
此次操作的时间,Date必须为GMT格式且不能为空。
重要如果请求中的Date时间和OSS服务器的当前时间差15分钟以上,OSS服务器将拒绝该请求,并返回HTTP 403错误。
CanonicalizedOSSHeaders
字符串
否
x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n
以
x-oss-
为前缀的HTTP Header的字典序排列,可以为空。如果设置CanonicalizedOSSHeaders为空,则无需在最后添加分隔符
\n
。如果只有一个CanonicalizedOSSHeaders,则需要在最后添加分隔符
\n
,例如x-oss-meta-a\n
。如果有多个CanonicalizedOSSHeaders,则需要在每一个CanonicalizedOSSHeaders之后添加分隔符
\n
,例如x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n
。
关于CanonicalizedOSSHeaders的构建方法,请参见构建CanonicalizedOSSHeaders的方法。
CanonicalizedResource
字符串
是
/examplebucket/
用户想要访问的OSS资源,不能为空。
关于CanonicalizedResource的构建方法,请参见构建CanonicalizedOSSHeaders的方法。
签名示例
请求
签名字符串计算公式
签名字符串
PUT /nelson HTTP/1.0 Content-MD5: eB5eJF1ptWaXm4bijSPyxw== Content-Type: text/html Date: Wed, 28 Dec 2022 10:27:41 GMT Host: examplebucket.oss-cn-hangzhou.aliyuncs.com x-oss-meta-author: alice x-oss-meta-magic: abracadabra
Signature = base64(hmac-sha1(AccessKeySecret,VERB + “\n” + Content-MD5 + “\n”+ Content-Type + “\n” + Date + “\n” + CanonicalizedOSSHeaders+ CanonicalizedResource))
PUT\n eB5eJF1ptWaXm4bijSPyxw==\n text/html\n Wed, 28 Dec 2022 10:27:41 GMT\n x-oss-meta-magic:abracadabra\nx-oss-meta-author:alice\n/examplebucket/nelson
假设AccessKey ID为LTAI********,AccessKey Secret为KZo1********,此处以Python为例介绍计算签名(Signature)的方法。
import hmac import hashlib import base64 h = hmac.new("KZo1********".encode('utf-8'), "PUT\nODBGOERFMDMzQTczRUY3NUE3NzA5QzdFNUYzMDQxNEM\ntext/html\nWed, 28 Dec 2022 10:27:41 GMT\nx-oss-meta-magic:abracadabra\nx-oss-meta-author:alice\n/oss-example/nelson".encode('utf-8'), hashlib.sha1) signature = base64.encodebytes(h.digest()) print(signature)
签名(Signature)计算结果为
77Dv****************
,结合Authorization头的结构组成,需要发送的消息体如下。PUT /nelson HTTP/1.0 Authorization:OSS qn6q**************:77Dv**************** Content-Md5: eB5eJF1ptWaXm4bijSPyxw== Content-Type: text/html Date: Wed, 28 Dec 2022 10:27:41 GMT Host: oss-example.oss-cn-hangzhou.aliyuncs.com x-oss-meta-author: alice x-oss-meta-magic: abracadabra
Authorization header is invalid, bad num of Items in Authorization header
错误原因:Authorization头部计算方法中涉及参数填写错误。
解决方案:请参考下表参数说明完成Authorization头部计算。
AccessKeyId or Signature is missing in Authorization header value
错误原因:Authorization头部计算方法中缺失AccessKey ID和Signature参数。
解决方法:在Authorization头部计算方法中添加参数AccessKey ID,并按照以下签名示例完成签名计算。
请求
签名字符串计算公式
签名字符串
PUT /nelson HTTP/1.0 Content-MD5: eB5eJF1ptWaXm4bijSPyxw== Content-Type: text/html Date: Wed, 28 Dec 2022 10:27:41 GMT Host: examplebucket.oss-cn-hangzhou.aliyuncs.com x-oss-meta-author: alice x-oss-meta-magic: abracadabra
Signature = base64(hmac-sha1(AccessKeySecret,VERB + “\n” + Content-MD5 + “\n”+ Content-Type + “\n” + Date + “\n” + CanonicalizedOSSHeaders+ CanonicalizedResource))
PUT\n eB5eJF1ptWaXm4bijSPyxw==\n text/html\n Wed, 28 Dec 2022 10:27:41 GMT\n x-oss-meta-magic:abracadabra\nx-oss-meta-author:alice\n/examplebucket/nelson
假设AccessKey ID为LTAI********,AccessKey Secret为KZo1********,此处以Python为例介绍计算签名(Signature)的方法。
import hmac import hashlib import base64 h = hmac.new("KZo1********".encode('utf-8'), "PUT\nODBGOERFMDMzQTczRUY3NUE3NzA5QzdFNUYzMDQxNEM\ntext/html\nWed, 28 Dec 2022 10:27:41 GMT\nx-oss-meta-magic:abracadabra\nx-oss-meta-author:alice\n/oss-example/nelson".encode('utf-8'), hashlib.sha1) signature = base64.encodebytes(h.digest()) print(signature)
签名(Signature)计算结果为
77Dv****************
,结合Authorization头的结构组成,需要发送的消息体如下。PUT /nelson HTTP/1.0 Authorization:OSS qn6q**************:77Dv**************** Content-Md5: eB5eJF1ptWaXm4bijSPyxw== Content-Type: text/html Date: Wed, 28 Dec 2022 10:27:41 GMT Host: oss-example.oss-cn-hangzhou.aliyuncs.com x-oss-meta-author: alice x-oss-meta-magic: abracadabra
Authorization header value is empty
错误原因:Authorization头部计算方法中相关参数取值为空。
解决方案:请参考下表参数说明完成Authorization头部计算。
参数
类型
是否必选
示例值
说明
AccessKeyId
字符串
是
LTAI********
密钥中的AccessKey ID。
AccessKeySecret
字符串
是
KZo1********
密钥中的AccessKey Secret。
VERB
枚举值
是
PUT
HTTP请求的Method,包含PUT、GET、POST、HEAD、DELETE、OPTIONS等。
\n
字符串
否
\n
换行符。
Content-MD5
字符串
否
eB5eJF1ptWaXm4bijSPyxw==
请求内容数据的MD5值,对消息内容(不包括头部)计算MD5值获得128比特位数字,对该数字进行base64编码得出。更多信息,请参见RFC2616 Content-MD5。
该请求头可用于消息合法性的检查(消息内容是否与发送时一致),也可以为空。
关于Content-MD5的计算方法,请参见Content-MD5的计算方法。
Content-Type
字符串
否
application/octet-stream
请求内容的类型,也可以为空。
Date
字符串
是
Sun, 22 Nov 2015 08:16:38 GMT
此次操作的时间,Date必须为GMT格式且不能为空。
重要如果请求中的Date时间和OSS服务器的当前时间差15分钟以上,OSS服务器将拒绝该请求,并返回HTTP 403错误。
CanonicalizedOSSHeaders
字符串
否
x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n
以
x-oss-
为前缀的HTTP Header的字典序排列,可以为空。如果设置CanonicalizedOSSHeaders为空,则无需在最后添加分隔符
\n
。如果只有一个CanonicalizedOSSHeaders,则需要在最后添加分隔符
\n
,例如x-oss-meta-a\n
。如果有多个CanonicalizedOSSHeaders,则需要在每一个CanonicalizedOSSHeaders之后添加分隔符
\n
,例如x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n
。
关于CanonicalizedOSSHeaders的构建方法,请参见构建CanonicalizedOSSHeaders的方法。
CanonicalizedResource
字符串
是
/examplebucket/
用户想要访问的OSS资源,不能为空。
关于CanonicalizedResource的构建方法,请参见构建CanonicalizedOSSHeaders的方法。
Unknown parameter in Authorization header
错误原因:Authorization头部计算方法中出现未知参数。
解决方案:请参考下表参数说明完成Authorization头部计算。
参数
类型
是否必选
示例值
说明
AccessKeyId
字符串
是
LTAI********
密钥中的AccessKey ID。
AccessKeySecret
字符串
是
KZo1********
密钥中的AccessKey Secret。
VERB
枚举值
是
PUT
HTTP请求的Method,包含PUT、GET、POST、HEAD、DELETE、OPTIONS等。
\n
字符串
否
\n
换行符。
Content-MD5
字符串
否
eB5eJF1ptWaXm4bijSPyxw==
请求内容数据的MD5值,对消息内容(不包括头部)计算MD5值获得128比特位数字,对该数字进行base64编码得出。更多信息,请参见RFC2616 Content-MD5。
该请求头可用于消息合法性的检查(消息内容是否与发送时一致),也可以为空。
关于Content-MD5的计算方法,请参见Content-MD5的计算方法。
Content-Type
字符串
否
application/octet-stream
请求内容的类型,也可以为空。
Date
字符串
是
Sun, 22 Nov 2015 08:16:38 GMT
此次操作的时间,Date必须为GMT格式且不能为空。
重要如果请求中的Date时间和OSS服务器的当前时间差15分钟以上,OSS服务器将拒绝该请求,并返回HTTP 403错误。
CanonicalizedOSSHeaders
字符串
否
x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n
以
x-oss-
为前缀的HTTP Header的字典序排列,可以为空。如果设置CanonicalizedOSSHeaders为空,则无需在最后添加分隔符
\n
。如果只有一个CanonicalizedOSSHeaders,则需要在最后添加分隔符
\n
,例如x-oss-meta-a\n
。如果有多个CanonicalizedOSSHeaders,则需要在每一个CanonicalizedOSSHeaders之后添加分隔符
\n
,例如x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n
。
关于CanonicalizedOSSHeaders的构建方法,请参见构建CanonicalizedOSSHeaders的方法。
CanonicalizedResource
字符串
是
/examplebucket/
用户想要访问的OSS资源,不能为空。
关于CanonicalizedResource的构建方法,请参见构建CanonicalizedOSSHeaders的方法。
Either the Signature query string parameter or the Authorization header should be specified, not both
错误原因
同一个请求中,在请求Header中存在用于签名的Authorization字段,且在请求URI中存在用于签名的OSSAccessKeyId、Expires和Signature字段。示例如下:
PUT /example_file?OSSAccessKeyId=nz2pc56s936****&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv**** HTTP/1.0 Authorization:OSS qn6q**************:77Dv**************** Content-Md5: eB5eJF1ptWaXm4bijSPyxw== Content-Type: text/html Date: Tue, 20 Dec 2022 08:48:18 GMT Host: oss-example.oss-cn-hangzhou.aliyuncs.com
解决方法
同一个请求中,仅使用Header签名或仅使用URI签名。
仅使用Header签名示例如下:
PUT /example_file HTTP/1.0 Authorization:OSS qn6q**************:77Dv**************** Content-Md5: eB5eJF1ptWaXm4bijSPyxw== Content-Type: text/html Date: Tue, 20 Dec 2022 08:48:18 GMT Host: oss-example.oss-cn-hangzhou.aliyuncs.com
仅使用URI签名示例如下:
PUT /example_file?OSSAccessKeyId=LTAI********&Expires=1141889120&Signature=vjby******** HTTP/1.0 Content-Md5: eB5eJF1ptWaXm4bijSPyxw== Content-Type: text/html Date: Tue, 20 Dec 2022 08:48:18 GMT Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Post request accessKeyId is empty
错误原因:Post请求Header中缺少OSSAccessKeyId表单域。
解决方案:当Bucket为非public-read-write或者提供了Policy(或Signature)表单域时,必须提供OSSAccessKeyId表单域。
Post request signature is empty
错误原因:Post请求Header中缺少签名信息。
解决方案:当Bucket为非public-read-write或者提供了OSSAccessKeyId(或Policy)表单域时,必须提供Signature表单域。
计算Signature的具体流程如下:
创建一个UTF-8编码的Policy。
将Policy进行Base64编码,其值即为Policy表单域填入的值,将该值作为将要签名的字符串。
使用AccessKeySecret对要签名的字符串进行签名,签名方法为
Signature = base64(hmac-sha1(base64(policy), AccessKeySecret))
。
OSS authentication requires a valid Date
错误原因:Authorization头中的Date无效。
解决方案:Date表示此次操作的时间,且必须为GMT格式,例如
Sun, 22 Nov 2015 08:16:38 GMT
。
The bucket POST must contain the specified field name
错误原因:POST请求表单中包含无效参数,或者参数格式不正确。
解决方案:请参见PostObject填写规范的参数。
The bucket POST contains unrecognized field name
错误原因:
filename
字段的下一行包含了自定义参数。解决方案:
filename
字段的下一行必须为规范的Content-Type
参数。如下图所示:
The bucket POST must contain the specified 'key'. If it is specified, please check the order of the fields
错误原因:Post请求中未指定key表单域,或者指定的key表单域顺序有误。
解决方案:您需要在Post请求中指定key表单域,且key表单域须排在file表单域之前。详情请参见PostObject。
Post body size must be less than 5G
错误原因:Post请求的Body总长度超过5 GB。
解决方案:Post请求的Body总长度不允许超过5 GB。详情请参见PostObject。
The callback configuration is not base64 encoded
错误原因:Callback参数未经过Base64编码。
解决方案:Callback参数必须为经过Base64编码的JSON字符串,且必须指定请求回调的服务器URL以及回调的内容。详情请参见Callback。
The callback configuration is not json format
错误原因:Callback参数不是JSON格式。
解决方案:Callback参数必须为经过Base64编码的JSON字符串。示例如下:
{ "callbackUrl":"121.101.XX.XX/test.php", "callbackHost":"oss-cn-hangzhou.aliyuncs.com", "callbackBody":"{\"mimeType\":${mimeType},\"size\":${size}}", "callbackBodyType":"application/json" }
The callback url configuration is invalid
错误原因:Callback参数没有指定请求回调的服务器 URL(callbackUrl)。
解决方案:Callback参数必须为经过Base64编码的JSON字符串,且必须指定请求回调的服务器URL以及回调的内容。
The callback host configuration is invalid
错误原因:callbackHost参数无效,无法进行JSON解析。
解决方案:callbackHost表示发起回调请求的Host头,例如
oss-cn-hangzhou.aliyuncs.com
。如果没有配置callbackHost,则解析callbackUrl中的URL,并将URL中解析到的Host填充到callbackHost中。
The callback body type configuration is invalid.或The body type of callback is not supported
错误原因:callbackBodyType参数无效,无法进行JSON解析。
解决方案:callbackBodyType表示发起回调请求的Content-Type,支持
application/x-www-form-urlencoded
和application/json
。
The number of callback url exceed max value
错误原因:请求的callbackurl个数超过5个。
解决方案:OSS支持同时配置最多5个URL,每个URL之间以分号(;)分隔。
The header value specified by persistent header is not utf-8 encoded
错误原因:用户自定义Header中的Value值不合法。
解决方案:对自定义Header中Value值包含的中文等特殊字符进行UTF-8编码。
The header value specified by persistent header is not equal to reqeust header value
错误原因:用户自定义Header与请求头中的Header重名时,两者的Value值不一致。
解决方案:用户自定义Header与请求头中的Header重名时,两者的Value值需保持一致。
The header value specified by persistent header contains CR or LF
错误原因:用户自定义Header中的Value值包含了回车符
\r
或换行符\n
。解决方案:请删除用户自定义Header中Value值包含的回车符
\r
和换行符\n
。
Either the callback query string parameter or the x-oss-callback header should be specified, not both
错误原因:请求URL和请求Header中同时包含了callback参数。
解决方案:仅允许在请求URL或请求Header中包含callback参数。
Either the callback-var query string parameter or the x-oss-callback-var header should be specified, not both
错误原因:请求URL和请求Header中同时包含了callback var参数。
解决方案:仅允许在请求URL或请求Header中包含callback var参数。
x-oss-traffic-limit should be specified either in query string or header, not both
错误原因:请求URL和请求Header中同时包含了单链接限速参数
x-oss-traffic-limit
。解决方案:仅允许在请求URL或请求Header中包含单链接限速参数
x-oss-traffic-limit
。
x-oss-traffic-limit is invalid, should be specified between 819200(100KB/s) and 838860800(100MB/s)
错误原因:单链接限速取值无效。
解决方案:单链接限速取值范围为819200~838860800,即100 KB/s~100 MB/s。
The format of persistent header is invalid, should be \"name:Base64Encode(value),name:Base64Encode(value)...\".或The header value specified by persistent header is not base64 encoded
错误原因:用户自定义Header的格式错误。
解决方案:用户自定义Header格式为
x-oss-persistent-headers: key1:base64_encode(value1),key2:base64_encode(value2)....
。其中key1、key2等为自定义的Header,value1、value2为自定义Header对应的值,Base64_encode表示对自定义Header的值进行Base64编码。例如自定义Header为myheader1和myheader2,其值分别为myvalue1、myvalue2,则自定义请求Header应为
x-oss-persistent-headers:myheader1:bXl2YWx1ZTE=,myheader2:bXl2YWx1ZTI=
。
The header 'x-oss-tagging' shall be encoded as UTF-8 then URLEncoded URL query parameters without tag name duplicates
错误原因:标签中Key和Value值未进行URL编码,且Key值重复。
解决方案:对象标签使用一组键值对(Key-Value)标记对象,对象标签规则如下:
单个Object最多可设置10个标签,Key不可重复。
每个Key长度不超过128字符,每个Value长度不超过256字符。
Key和Value区分大小写。
标签合法字符集包括大小写字母、数字、空格和以下符号:
+‑=._:/
通过HTTP Header的方式设置标签且标签中包含任意字符时,您需要对标签的Key和Value做URL编码。
The header specified by persistent header is reserved
错误原因:用户自定义Header中与HTTP中规定的标准头冲突。
解决方案:用户自定义Header中不能指定HTTP中规定的标准头,例如
Host
、Content-MD5
、Origin
或Range
等。
The header specified by persistent header is not valid HTTP token
错误原因:用户自定义Header包含非法字符。
解决方案:OSS遵循RFC7230规范,请根据RFC7230规范判断HTTP Header是否包含非法字符。
Can not get ip by this host
错误原因:Host无效。
解决方案:Host包含Bucket域名以及IP地址两种。Bucket域名格式为
BucketName.Endpoint
,例如examplebucket.oss-cn-hangzhou.aliyuncs.com
。如Host为IP地址,需确保IP地址有效。
Private address is forbidden to callback
错误原因:OSS无法向内网IP地址发送callback请求。
解决方案:请使用公网地址发送callback请求。
The length of callback exceed max value
错误原因:callback参数的Base64编码总长度超过了5 KB。
解决方案:callback参数的Base64编码总长度最大为5 KB。
The callback body is empty
错误原因:没有填写callbackBody参数。
解决方案:Callback参数必须为经过Base64编码的JSON字符串,且必须指定请求回调的服务器URL(callbackUrl)以及回调的内容(callbackBody)。
The callback body is invalid
错误原因:callbackBody参数无效,无法进行JSON解析。
解决方案:callbackBody表示发起回调时请求Body的值,例如
key=$(object)&etag=$(etag)&my_var=$(x:my_var)
。请参见Callback进行排查。
The length of callback var exceed max value
错误原因:callback var参数的Base64编码总长度超过了5 KB。
解决方案:callback var参数的Base64编码总长度最大为5 KB。
The callback var is not expecten json
错误原因:callback-var参数不是JSON格式。
解决方案:callback-var用于配置自定义参数,自定义参数格式为Key-Value对,Key要以
x:
开头且必须为小写格式。假设需要设置的Key分别为x:var1
和x:var2
,对应的值分别为value1和value2,则JSON格式如下:{ "x:var1":"value1", "x:var2":"value2" }
Invalid date. Must be later than 1970-01-01 00:00:00
错误原因:时间参数无效,Unix时间戳小于0。
解决方案:Unix时间戳必须大于0。
Invalid date. Cannot be later than the current time
错误原因:时间参数无效,Unix时间戳晚于当前时间。
解决方案:Unix时间戳必须早于当前时间。
Bad date format
错误原因:时间参数无效。
解决方案:时间格式需遵从RFC 1123标准,例如
Sun, 06 Nov 1994 08:49:37 GMT
。
The Versioning element must be specified
错误原因:<VersioningConfiguration>字段中未指定Bucket的版本控制状态。
解决方案:在<VersioningConfiguration>字段中指定Bucket的版本控制状态。示例如下:
PUT /?versioning HTTP/1.1 Host: bucket-versioning.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 02:20:12 GMT Authorization: OSS qn6q**************:77Dv**************** <?xml version="1.0" encoding="UTF-8"?> <VersioningConfiguration> <Status>Enabled</Status> <VersioningConfiguration>
RepeatedTags
Tag keys must be unique
错误原因:标签中的Key已存在。
解决方案:调用GetBucketTags获取存储空间已配置的标签信息,然后参见PutBucketTags配置新的标签。
InvalidHostPutBucket
Your host is invalid. Please put bucket use Open Storage Service standard host
错误原因:Host参数错误。
解决方案:请使用标准访问域名。有关访问域名和数据中心的更多信息,请参见访问域名和数据中心。
InvalidEncryptionAlgorithmError
The encryption algorithm specified is not valid.或The Encryption request you specified is not valid. Supported value: AES256/SM4/KMS
错误原因:
x-oss-server-side-encryption
参数指定的值无效。解决方案:
x-oss-server-side-encryption
有效值为AES256、KMS或SM4。有关服务器端加密方式的更多信息,请参见PutObject。
InvalidDataEncryptionAlgorithmError
The KMS Data Encryption request you specified is not valid. Supported value:SM4
错误原因:指定的Object加密算法无效。
解决方案:当Object的加密方式为KMS时,加密算法仅支持SM4。更多信息,请参见服务器端加密。
InvalidParameter
The specified parameter KMS keyId is not valid
错误原因:指定的CMK ID无效。
解决方案:当Object加密方式为KMS且使用指定的密钥加密时,需输入CMK ID。CMK ID示例值为
9468da86-3509-4f8d-a61e-6eab1eac****
。
InvalidWORMConfiguration
Invalid WORM Configuration
错误原因:合规保留策略无效。
解决方案:通过InitiateBucketWorm接口新建合规保留策略示例如下:
POST /?worm HTTP/1.1 Date: Thu, 15 May 2014 11:18:32 GMT Content-Length:556 Content-Type: application/xml Host: BucketName.oss.aliyuncs.com Authorization: OSS qn6q**************:77Dv**************** <InitiateWormConfiguration> <RetentionPeriodInDays>365</RetentionPeriodInDays> </InitiateWormConfiguration>
InventoryExceedLimit
You are not allowed to create more inventory than limit
错误原因:单个Bucket配置的清单规则已达到最大值1000条。
解决方案:如需调整清单规则上限,请提交工单。
DailyInventoryExceedLimit
daily inventory object count exceed limit
错误原因:按天导出清单文件时,Bucket内的文件数量超出限制。
解决方案:按天导出清单文件时,Bucket内的文件数量需小于100亿。
当Bucket内的文件数量大于等于100亿时,建议按周导出清单文件。
WeeklyInventoryExceedLimit
weekly inventory object count exceed limit
错误原因:按周导出清单文件时,Bucket内的文件数量超出限制。
解决方案:按周导出清单文件时,Bucket内的文件数量需<500亿。
当Bucket内的文件数量大于等于500亿时:
按前缀匹配分批导出。
通过提交工单提升导出Bucket文件数量的限制。
BadRequest
Insufficient information. Origin request header needed
错误原因:缺少Origin请求头。
解决方案:浏览器在发送跨域请求之前会发送一个preflight请求(OPTIONS)给OSS,并带上特定的请求头Origin,用于标识跨域请求的来源域。示例如下:
Insufficient information. Request Access-Control-Request-Method header neede
错误原因:缺少Access-Control-Request-Method请求头。
解决方案:浏览器在发送跨域请求之前会发送一个preflight请求(OPTIONS)给OSS,并带上特定的请求头Access-Control-Request-Method,用于标识实际请求所用的方法。示例如下:
RequestTimeout
Your socket connection to the server was not read from or written to within the timeout period. Idle connections will be closed
错误原因:因网络环境或网络配置等引起的网络超时。
解决方案:请参见网络超时处理。
InvalidTaggingKey
The tagging key you provided is invalid
错误原因:对象标签中配置的Key不合法。
解决方案:对象标签使用一组键值对(Key-Value)标记对象,对象标签规则如下:
每个Key长度不超过128字符,每个Value长度不超过256字符。
Key和Value区分大小写。
标签合法字符集包括大小写字母、数字、空格和以下符号:
+‑=._:/
通过HTTP Header的方式设置标签且标签中包含任意字符时,您需要对标签的Key和Value做URL编码。
TooManyCname
You have attempted to create more cname than allowed
错误原因:单个Bucket可绑定的域名数量已达到最大值100个。
解决方案:如需调整Bucket域名上限,请提交工单。
InvalidChannelName
The Length of channel name must be less than 64
错误原因:Channel名称长度超出限制。
解决方案:确保Channel名称长度必须在1~64字符之间。
ChannelName must not be empty
错误原因:Channel名称字段缺失。
解决方案:请按照命名规范填写Channel名称。
使用UTF-8编码。
长度必须在1~64字符之间。
不能包含正斜线(/)或者反斜线(\)。
The characters encoding must be utf-8
错误原因:Channel名称编码方式错误。
解决方案:Channel名称需使用UTF-8编码。
ChannelName must not contain a slash
错误原因:Channel名称包含了斜线。
解决方案:请确保Channel名称不能包含正斜线(/)或者反斜线(\)。
InvalidPart
One or more of the specified parts could not be found or the specified entity
错误原因:PartNumber或ETag错误导致CompleteMultipartUpload提交的Part无效。
解决方案:服务端在调用CompleteMultipartUpload接口时会对PartNumber和ETag做校验。
PartNumber取值为1~10000。PartNumber可以不连续,但必须升序排列。例如第一个Part的PartNumber是1,第二个Part的PartNumber可以是5。
通过CompleteMultipartUpload请求创建的Object,ETag值是其内容的UUID。ETag值可以用于检查Object内容是否发生变化。
InvalidPartOrder
The list of parts was not in ascending order
错误原因:CompleteMultipartUpload提交的Part未按照partNumber升序排列。
解决方案:CompleteMultipartUpload提交的Part需按照partNumber升序排列。例如第一个Part的PartNumber是1,第二个Part的PartNumber可以是5。
Part number must be an integer between 1 and 10000, inclusive
错误原因:无效的PartNumber。
解决方案:请确保PartNumber取值为1~10000。
FilePartNotExist
The Part you read had been deleted
错误原因:请求的Part已删除。
解决方案:请参见CompleteMultipartUpload查看是否已上传所有的Part。
InvalidXMLFormat
The XML you provided was not well-formed
错误原因:参数不符合XML格式。
解决方案:请检查参数是否符合XML格式。
InvalidRequest
Request specific response headers cannot be used for anonymous GET requests
错误原因:请求参数中缺少必选参数。
解决方案:请根据所调用的API接口,检查是否已填写所有必选参数。详情请参见API概览。
Security-token must be provided by query string parameter
错误原因:没有携带security-token。
解决方案:临时用户使用URL签名时,必须携带security-token。临时用户使用签名URL的格式为:
http://oss-example.oss-cn-hangzhou.aliyuncs.com/oss-api.pdf?OSSAccessKeyId=nz2pc56s936****&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv****&security-token=SecurityToken
。详情请参见在URL中包含签名。
Size of playlist is too big
错误原因:Playlist文件大小超出最大限制。
解决方案:请确保Playlist文件大小不超过1 MB。
No ts found in the playlist
错误原因:未找到ts音视频文件。
解决方案:通过推流的方式上传音视频文件。详情请参见PutLiveChannel。
Playlist name must ends with \".m3u8\"
错误原因:文件不以
.m3u8
结尾。解决方案:当转储类型为HLS时,指定生成的m3u8文件名称。文件名称需以
.m3u8
结尾,文件长度在6~128字符之间,例如playlist.m3u8
。
Master playlist has ts file
错误原因:playlist文件中同时包含了m3u8和ts类型文件。
解决方案:通常playlist文件类型为m3u8,用于记录ts视频文件信息。详情请参见基于OSS构建HLS流。
MaxPOSTPreDataLengthExceededError
Your POST request fields preceding the upload file were too large
错误原因:上传的文件过大。通过Post方法上传的文件不能超过5 GB。
解决方案:请参见PostObject错误及排查。
TooManyPipes
Maximal number of pipes supported is
错误原因:图片操作次数过多。
解决方案:请减少您的图片操作次数,按提示限制在合法值以下。
FieldItemTooLong
Your name of form field is too long
错误原因:Post请求中表单域过大。
解决方案:除了file表单域外,其他表单域大小不得超过4 KB。请参见PostObject错误及排查。
MalformedPOSTRequest
The body of your POST request is not well-formed multipart/form-data
错误原因:PostObject请求中表单域格式不符合要求。
解决方案:遵循表单域格式要求。
表单域格式如下 :
Content-Disposition: form-data; name="{key}"\r\n\r\n{value}\r\n--{boundary}
PostObject请求示例如下:
POST / HTTP/1.1 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.6) Content-Type: multipart/form-data; boundary=9431149156168 Host: xxxx-hz.oss-cn-hangzhou.aliyuncs.com Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Connection: keep-alive Content-Length: 5052 --9431149156168 Content-Disposition: form-data; name="key" test-key --9431149156168 Content-Disposition: form-data; name="Content-Disposition" attachment;filename=D:\img\example.png --9431149156168 Content-Disposition: form-data; name="OSSAccessKeyId" 2NeL********j2Eb
要求如下:
Header必须包含Content-Type: multipart/form-data; boundary={boundary}。
Header和Body之间由
\r\n--{boundary}
分割。\r\n
显示为换行。表单域名称大小写敏感,如
policy
、key
、file
、OSSAccessKeyId
、OSSAccessKeyId
、Content-Disposition
。表单域
file
必须为最后一个表单域。Bucket为
public-read-write
时,可以不指定表单域OSSAccessKeyId
、policy
、Signature
。如果指定了其中一个,则无论Bucket是否为public-read-write
,都必须指定另外两个。
说明上面的示例为请求的部分内容,完整的请求请参见PostObject。
如果您还有疑问,请参见示例代码:
InvalidPolicyDocument
Invalid Policy: Invalid Simple-Condition: Simple-Conditions must have exactly one property specified
错误原因:请求Policy中没有包含
conditions
。解决方案:请求Policy中必须包含至少一项
conditions
。
Invalid Policy: Invalid JSON: unknown char e
错误原因:请求中的Policy格式错误。
解决方案:请检查Policy格式,是否缺失
"
,转义字符前是否有\
。
Invalid Policy: Invalid JSON: , or ] expected
错误原因:请求中的Policy格式错误。
解决方案:请检查Policy中是否缺少
,
或]
。
IncorrectNumberOfFilesInPOSTRequest
POST requires exactly one file upload per request
错误原因:Post请求中文件个数无效。Post请求中只能有一个
file
表单域。解决方案:确保Post请求中只有一个
file
表单域。
EntityTooSmall
Your proposed upload smaller than the minimum allowed size
错误原因:上传的Object超出允许的最小值。
解决方案:采用Post方法上传文件时,通过PostPolicy设置表单域的有效值。可使用限定条件
content-length-range
指定允许上传Object的大小范围。
EntityTooLarge
Your proposed upload exceeds the maximum allowed size或Source object Length exceeds the maximum allowed size
错误原因:上传的Object超出允许的最大值。
解决方案:采用Post方法上传文件时,通过PostPolicy设置表单域的有效值。可使用限定条件
content-length-range
指定允许上传Object的大小范围。更多信息,请参见附录:Post Policy。
MalformedXML
The XML you provided was not well-formed or did not validate against our published schema
错误原因:请求中的XML格式非法。
解决方案:请根据具体请求进行错误排查。
各请求的详细信息如下:
NoReplicationRule
No replication rule specified
错误原因:请求的Bucket没有配置跨区域复制规则。
解决方案:请参见PutBucketReplication配置跨区域复制规则。
TooManyReplicationRules
OSS only support one replication rule now
错误原因:单个Bucket配置的跨区域复制规则数量超出限制。
解决方案:单个Bucket仅允许配置一条跨区域复制规则。
InvalidBucketStatus
The src and dest bucket must be versioning enabled when drs tagging rule exist
错误原因:跨区域复制的源Bucket和目标Bucket的版本控制状态不一致。
解决方案:跨区域复制的源Bucket和目标Bucket同时处于版本控制或非版本控制状态。
InvalidTargetBucket
The target bucket is invalid for bucket replication
错误原因:跨区域复制的目标Bucket无效。
解决方案:调用GetBucketReplicationLocation获取可复制到的目标存储空间(Bucket)所在的地域。您可以根据返回结果决定将源Bucket的数据复制到哪个地域。
InvalidTargetLocation
The target bucket you specified does not locate in the target location
错误原因:目标地域不存在此Bucket。
解决方案:请检查Bucket所在地域。
BadReplicationLocation
The replication location you choose is invalid
错误原因:跨区域复制对应的目标地域不存在。
解决方案:请检查目标Bucket所在地域。
NoReplicationLocation
The bucket does not have corresponding replication location
错误原因:源Bucket所在的数据中心没有与之配对的可实施跨区域复制的数据中心。
解决方案:请参见GetBucketReplicationLocation进行排查。
BucketReplicationAlreadyExist
Bucket replication already exists
错误原因:源Bucket到目标Bucket已存在跨区域复制关系。
解决方案:如需配置新的跨区域复制规则,请先删除已有的跨区域复制规则后再配置。
TooManyIncomingReplication
You have attempted to create more incoming replication for bucket than allowed
错误原因:与Bucket关联的跨区域复制规则个数已达到100条。
解决方案:单个Bucket支持配置100条跨区域复制规则。如果业务需求超出数量限制,请提交工单联系我们。
TooManyOutgoingReplication
You have attempted to create more outgoing replication for bucket than allowed
错误原因:与Bucket关联的跨区域复制规则个数已达到100条。
解决方案:单个Bucket支持配置100条跨区域复制规则。如果业务需求超出数量限制,请提交工单联系我们。
CORSRuleBeyondLimit
The CORS Rules num is beyond limit
错误原因:Bucket配置的CORS规则数量超出限制。
解决方案:Bucket允许配置最多10条CORS规则。详情请参见PutBucketCors。
TooManyTags
The bucket tags num is beyond limit
错误原因:Bucket配置的标签数量超出限制。
解决方案:Bucket允许配置最多20个标签。详情请参见PutBucketTags
TooManyPrefixes
The bucket replication rule's prefixes number is beyond limit
错误原因:跨区域复制规则中配置的前缀数量超出限制。
解决方案:进行跨区域复制时,允许将指定前缀的Object同步到目标Bucket,最多可以添加10个前缀。
TooManyFilterObjectTags
The bucket replication rule's filter object tags number is beyond limit
错误原因:跨区域复制规则中配置的对象标签个数超出限制。
解决方法:同步与指定标签匹配的Object到目标Bucket,最多可添加10个标签。
InvalidDigest
The Content-MD5 you specified was invalid
错误原因:上传的Content-MD5请求头与OSS计算消息体的Content-MD5不一致。
解决方案:请参见Content-MD5的计算方法进行排查。
InvalidCRC64
The x-oss-hash-crc64ecma you specified does not match what we calculated
错误原因:本地计算的crc64值与服务器返回的crc64值不一致。
解决方案:请参见通过crc64校验数据传输的完整性进行排查。
InlineDataTooLarge
Inline data exceeds the maximum allowed size
ImageTooLarge
Maximal size of image supported is
错误原因:图片大小超出限制。
解决方案:原图文件大小限制如下:
原图文件大小不能超过20 MB。
使用旋转图片时原图的宽或高不能超过4096 px。
原图单边大小不能超过30000 px。
IncompleteBody
You did not provide the number of bytes specified by the Content-Length HTTP header
错误原因:Content-length参数指定的字节大小与用户实际发送的字节大小不一致。
解决方案:请根据实际发送的字节大小填写相应的Content-length参数。
KmsServiceNotEnabled
This user does not turn on KMS service
错误原因:使用KMS加密方式进行服务器端加密时,未开通KMS服务。
解决方案:使用KMS加密方式进行服务器端加密前,请预先开通KMS服务。详情请参见开通密钥管理服务。
OperationNotSupported
The operation is not supported for this resource
错误原因:该资源不支持此类操作。可能的场景如下:
将Appendable类型的Object或者软链接(symlink)转换为冷归档或者深度冷归档存储类型。
通过RestoreObject接口解冻非归档、冷归档或者深度冷归档存储类型Object。
解决方案:
调用PutObject接口上传同名Object,将Appendable类型Object覆写为Normal类型Object,然后将该Object转换为冷归档或者深度冷归档存储类型。
当您调用RestoreObject接口解冻文件时,请确保待解冻文件为归档、冷归档或者深度冷归档存储类型。
有关各类资源支持的操作类型,请参见API概览。
NotSymlink
The object is not symlink
错误原因:操作的Object不是软链接类型。
解决方案:请确保PutSymlink或GetSymlink操作仅作用于软链接。
InvalidTag
The TagKey you have provided is invalid.或The TagValue you have provided is invalid
错误原因:存储空间标签的Key或Value不合法。
解决方案:检查并确保存储空间标签命名符合规范,标签规范如下:
Key和Value必须为UTF-8编码。
Key最大长度为64字符,不能以
http://
、https://
、Aliyun
为前缀,且不能为空。Value最大长度为128字符,可以为空。
InvalidEncryptionRequest
The parameters of client encryption are allowed to be set once
错误原因:通过CopyObject接口修改客户端加密元数据。
解决方案:调用客户端加密上传文件后,加密元数据会被保护,无法通过CopyObject修改Object meta信息。详情请参见CopyObject。
Miss some necessary client encryption meta parameters
错误原因:客户端加密缺少必要参数。
解决方案:请确保已填写以下各项必选参数。
参数
描述
x-oss-meta-client-side-encryption-key
加密后的密钥。 经过主密钥加密后再经过Base64编码的字符串。
x-oss-meta-client-side-encryption-start
随机产生的用于加密数据的初始值 。经过主密钥加密后再经过Base64编码的字符串。
x-oss-meta-client-side-encryption-cek-alg
数据的加密算法。
x-oss-meta-client-side-encryption-wrap-alg
数据密钥的加密算法。
The parts count calculated by client encryption meta is too large
错误原因:客户端加密元数据中输入的Part数量超出限制。
解决方案:每个Object最多支持切分为10000个Part。
The client encryption meta data_size or part_size is invalid
错误原因:客户端加密元数据中输入的文件总大小或分片大小不合法。
解决方案:通过客户端加密Multipart文件时,需要在init_multipart时传入整个大文件的总大小(x-oss-meta-client-side-encryption-data-size)以及分片大小(x-oss-meta-client-side-encryption-part-size),且分片大小必须是16的整数倍。详情请参见客户端加密。
The client encryption part list is unexpected with init_multipart setted
错误原因:实际上传的分片数量和初始化分片上传指定的分片数量不一致。
解决方案:请确保指定的分片数量与实际上传的分片数量一致。
The partId must less or equal to expectedPartNumber
错误原因:分片ID大于总分片数(PartNumber)。
解决方案:请确保分片ID等于或者小于总分片数。详情请参见UploadPart。
The partSize must same with init_multipart setted except last part
错误原因:实际上传的每个分片大小与初始化分片上传指定的每个分片大小不一致。
解决方案:除最后一个分片外,其他分片大小均要求与初始化分片上传指定的每个分片大小一致。详情请参见UploadPart。
The last partSize must same with init_multipart setted
错误原因:实际上传的所有分片总大小与初始化分片上传指定的分片总大小不一致。
解决方案:上传最后一个分片后,请确保实际上传的所有分片总大小与初始化分片上传指定的分片总大小一致。详情请参见CompleteMultipartUpload。
The client encryption meta is inconsistent with init_multipart setted
错误原因:客户端加密配置的分片加密信息与初始化分片上传中设置的加密信息不一致。
解决方案:请确保客户端配置的分片加密信息与初始化分片上传中设置的加密信息一致。详情请参见客户端加密。
Client encryption doesn't support upload part copy
错误原因:不支持对经过客户端加密的源文件中调用UploadPartCopy接口。
解决方案:仅支持从未经客户端加密的源文件中调用UploadPartCopy接口,实现从一个已存在的Object中拷贝数据来上传一个Part。详情请参见UploadPartCopy。
UserKeyMustBeSpecified
User key must be specified
错误原因:删除Object时未指定Object名称。
解决方案:删除Object时需指定Object名称。详情请参见DeleteMultipleObjects。
InvalidTargetBucketForLogging
Put bucket log requester is not target bucket owner
错误原因:存放日志的目标Bucket不存在。
解决方案:请更换为有效的目标Bucket。
InvalidPart
One or more of the specified parts could not be found or the specified entity tag might not have matched the part's entity tag
错误原因:PartNumber或ETag错误导致CompleteMultipartUpload提交的Part无效。
解决方案:请参见CompleteMultipartUpload。
InvalidPartOrder
The list of parts was not in ascending order
错误原因:CompleteMultipartUpload提交的Part未按照partNumber升序排列。
解决方案:请参见CompleteMultipartUpload。
Part number must be an integer between 1 and 10000, inclusive
错误原因:无效的partNumber。partNumber的取值范围为1~10000。
解决方案:请参见CompleteMultipartUpload。
InvalidEncryptionAlgorithmError
The encryption algorithm specified is not valid
错误原因:指定的
x-oss-server-side-encryption
值无效。有效值为AES256
或KMS
。解决方案:请参见PutObject。
InvalidTargetType
The symbolic's target file type is invalid
错误原因:Object类型为软链接,且软链接指向的目标Object类型仍为软链接。
解决方案:确保软链接指向的目标Object不是软链接。
MissingAccessKeyId
MissingAccessKeyId AccessKeyId is mandatory for this action
错误原因:缺少AccessKey ID。
解决方案:填写正确的AccessKey ID。