This topic describes the types of error messages returned with HTTP status code 400, and the common causes of and solutions to these errors.
InvalidBucketName
The specified bucket is not valid
Cause: The bucket name is invalid.
Solution: Make sure that the bucket name complies with the following naming rules:
The bucket name can contain only lowercase letters, digits, and hyphens (-).
The name must start and end with a lowercase letter or digit.
The name must be 3 to 63 characters in length.
InvalidObjectName
The Object name can not be empty
Cause: No object name is specified.
Solution: Specify a name for the object and make sure that the bucket name complies with the naming rules.
The Length of Object name must be less than 1024
Cause: The length of the object name exceeds the limit.
Solution: The object name must be 1 to 1,023 characters in length.
The specified object is not valid
Cause: The specified object name is invalid.
Solution: Make sure that the object name complies with the following naming rules:
The name must be encoded in UTF-8.
The name must be 1 to 1,023 characters in length.
The name cannot start with a forward slash (/) or a backslash (\).
TooManyBuckets
You have attempted to create more buckets than allowed
Cause: The number of buckets that are created by the Alibaba Cloud account in the region has reached the upper limit of 100.
Solutions:
Create directories in an existing bucket in the region to store data. The storage capacity of a bucket is unlimited. For more information about how to create a directory, see Manage directories.
Delete buckets that you no longer need. For more information about how to delete a bucket, see Delete buckets.
WarningDeleted buckets cannot be restored. Exercise caution when you perform this operation.
Submit a ticket to increase the maximum number of buckets that you can create by using an Alibaba Cloud account in a region.
RequestIsNotMultiPartContent
Bucket POST must be of the enclosure-type multipart/form-data
Cause: The value of the Content-Type header in the PostObject request is not in the
multipart/form-data
format.Solution: The value of the Content-Type header in the PostObject request must be in the
multipart/form-data
format. TheContent-Type
header must be in themultipart/form-data;boundary=xxxxxx
format, in which boundary is aboundary
string. For more information, see PostObject.
NotImplemented
A header you provided implies functionality that is not implemented
Cause: The request contains invalid parameters.
Solution: Make sure that the parameters are valid before you call the API operation. For more information, see List of operations by function.
MissingArgument
Missing Some Required Arguments
Cause: The request for the API operation does not contain all required parameters.
Solution: Make sure that all required parameters are specified when you call the API operation. For more information, see List of operations by function.
InvalidArgument
Invalid Argument. Parameter is invalid
Cause: The format of a parameter is invalid.
Solution: Make sure that the parameters are in the valid format before you call the API operation. For more information, see List of operations by function.
The callback signature version is invalid
Cause: The version of the signature is not supported.
Solution: Make sure that the version of the current signature is 1.0 or 2.0.
Copy Source must mention the source bucket and key: /sourcebucket/sourcekey
Cause: The source bucket and source object are not specified when you copy an object.
Solution: When you copy an object, you must use the x-oss-copy-source parameter to specify the source object in the
/sourcebucket/sourcekey
format. For example, if you want to copy an object named exampleobject from a bucket named examplebucket to another bucket, set x-oss-copy-source to/examplebucket/exampleobject
.
KMSMasterKeyID is not applicable if the default sse algorithm is not KMS
Cause: KMSMasterKeyID is specified when SSEAlgorithm is set to AES256.
Solution: Specify KMSMasterKeyID only when you set SSEAlgorithm to KMS and want to use a specified customer master key (CMK) to encrypt objects.
KMSMasterKeyID is not applicable if user is not in white list or SM4 is not applicable if user is not in white list
Cause: You do not have the permissions to perform this operation.
Solution: Perform the operation as the bucket owner or an authorized RAM user. Only the bucket owner or authorized RAM users can configure encryption rules for the bucket. For more information, see PutBucketEncryption.
No such bucket storage class exists
Cause: The specified bucket storage class does not exist.
Solution: Set the storage class of the bucket to Standard, Infrequent Access (IA), Archive, Cold Archive, or Deep Cold Archive. For more information, see PutBucket.
Invalid version id specified
Cause: The specified object version ID is invalid.
Solution: Call the GetBucketVersions (ListObjectVersions) operation to check whether versioning is enabled for the bucket and whether the specified object version ID is valid.
Version id can not be the empty string
Cause: The VersionId field is not specified.
Solution: Specify the object version ID in the VersionId field. For more information, see ListObjectVersions (GetBucketVersions).
Authorization header is invalid
Cause: The parameters that are used to calculate the Authorization header are invalid.
Solution: Check the parameters for the calculation of the Authorization header based on the following information.
Calculation method
Authorization = "OSS " + AccessKeyId + ":" + Signature Signature = base64(hmac-sha1(AccessKeySecret, VERB + "\n" + Content-MD5 + "\n" + Content-Type + "\n" + Date + "\n" + CanonicalizedOSSHeaders + CanonicalizedResource))
Parameter description
Parameter
Type
Required
Example
Description
AccessKeyId
String
Yes
LTAI********
The AccessKey ID that is used to access Object Storage Service (OSS).
AccessKeySecret
String
Yes
KZo1********
The AccessKey secret that is used to access OSS.
VERB
Enumeration
Yes
PUT
The method of the HTTP request, which can be PUT, GET, POST, HEAD, DELETE, or OPTIONS.
\n
String
No
\n
The line feed.
Content-MD5
String
No
eB5eJF1ptWaXm4bijSPyxw==
The MD5 hash of the requested content. The message content that excludes the header is calculated to obtain an MD5 hash. The MD5 hash is a 128-bit number that is encoded in Base64 to generate the Content-MD5 value. For more information, see RFC 2616 Content-MD5.
The request header can be used to check the validity of a message. The message content is valid only if the received message content is the same as the content that is sent. This parameter can be left empty.
For more information about how to calculate the value of Content-MD5, see Include signatures in the Authorization header.
Content-Type
String
No
application/octet-stream
The type of the request content. This parameter can be left empty.
Date
String
Yes
Sun, 22 Nov 2015 08:16:38 GMT
The time when this operation is performed. The value of this parameter must be in GMT. This parameter cannot be left empty.
ImportantIf the discrepancy between the time specified by the Date header in a request and the time on the server when the request is received is greater than 15 minutes, OSS rejects the request and returns HTTP status code 403.
CanonicalizedOSSHeaders
String
No
x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n
The HTTP headers that are prefixed with
x-oss-
and arranged in alphabetical order. This parameter can be left empty.If CanonicalizedOSSHeaders is left empty, you do not need to add the
\n
delimiter at the end.If CanonicalizedOSSHeaders includes only one header, the
\n
delimiter must be added at the end of the header. Example:x-oss-meta-a\n
.If CanonicalizedOSSHeaders includes multiple headers, you must add the
\n
delimiter at the end of each header. Example:x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n
.
For more information about how to construct CanonicalizedOSSHeaders, see Include signatures in the Authorization header.
CanonicalizedResource
String
Yes
/examplebucket/
The OSS resource that you want to access. This parameter cannot be left empty.
For more information about how to construct CanonicalizedResource, see Include signatures in the Authorization header.
Signature example
Request
Formula
Signature string
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
If the AccessKey ID is LTAI******** and the AccessKey secret is KZo1********, you can run the following Python code to calculate the 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)
The calculated signature is
77Dv****************
. The following example shows the final request that includes the Authorization header: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
Cause: The parameters used to calculate the Authorization header are invalid.
Solution: Configure the parameters described in the following table for the calculation of the Authorization header.
Parameter
Type
Required
Example
Description
AccessKeyId
String
Yes
LTAI********
The AccessKey ID that is used to access Object Storage Service (OSS).
AccessKeySecret
String
Yes
KZo1********
The AccessKey secret that is used to access OSS.
VERB
Enumeration
Yes
PUT
The method of the HTTP request, which can be PUT, GET, POST, HEAD, DELETE, or OPTIONS.
\n
String
No
\n
The line feed.
Content-MD5
String
No
eB5eJF1ptWaXm4bijSPyxw==
The MD5 hash of the requested content. The message content that excludes the header is calculated to obtain an MD5 hash. The MD5 hash is a 128-bit number that is encoded in Base64 to generate the Content-MD5 value. For more information, see RFC 2616 Content-MD5.
The request header can be used to check the validity of a message. The message content is valid only if the received message content is the same as the content that is sent. This parameter can be left empty.
For more information about how to calculate the value of Content-MD5, see Include signatures in the Authorization header.
Content-Type
String
No
application/octet-stream
The type of the request content. This parameter can be left empty.
Date
String
Yes
Sun, 22 Nov 2015 08:16:38 GMT
The time when this operation is performed. The value of this parameter must be in GMT. This parameter cannot be left empty.
ImportantIf the discrepancy between the time specified by the Date header in a request and the time on the server when the request is received is greater than 15 minutes, OSS rejects the request and returns HTTP status code 403.
CanonicalizedOSSHeaders
String
No
x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n
The HTTP headers that are prefixed with
x-oss-
and arranged in alphabetical order. This parameter can be left empty.If CanonicalizedOSSHeaders is left empty, you do not need to add the
\n
delimiter at the end.If CanonicalizedOSSHeaders includes only one header, the
\n
delimiter must be added at the end of the header. Example:x-oss-meta-a\n
.If CanonicalizedOSSHeaders includes multiple headers, you must add the
\n
delimiter at the end of each header. Example:x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n
.
For more information about how to construct CanonicalizedOSSHeaders, see Include signatures in the Authorization header.
CanonicalizedResource
String
Yes
/examplebucket/
The OSS resource that you want to access. This parameter cannot be left empty.
For more information about how to construct CanonicalizedResource, see Include signatures in the Authorization header.
AccessKeyId or Signature is missing in Authorization header value
Cause: The AccessKey ID and the Signature parameter are not specified in the Authorization header.
Solution: Add the AccessKey ID to the Authorization header and calculate the signature string based on the following example.
Request
Formula
Signature string
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
If the AccessKey ID is LTAI******** and the AccessKey secret is KZo1********, you can run the following Python code to calculate the 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)
The calculated signature is
77Dv****************
. The following example shows the final request that includes the Authorization header: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
Cause: The parameters that are used to calculate the Authorization header are left empty.
Solution: Configure the parameters described in the following table for the calculation of the Authorization header.
Parameter
Type
Required
Example
Description
AccessKeyId
String
Yes
LTAI********
The AccessKey ID that is used to access Object Storage Service (OSS).
AccessKeySecret
String
Yes
KZo1********
The AccessKey secret that is used to access OSS.
VERB
Enumeration
Yes
PUT
The method of the HTTP request, which can be PUT, GET, POST, HEAD, DELETE, or OPTIONS.
\n
String
No
\n
The line feed.
Content-MD5
String
No
eB5eJF1ptWaXm4bijSPyxw==
The MD5 hash of the requested content. The message content that excludes the header is calculated to obtain an MD5 hash. The MD5 hash is a 128-bit number that is encoded in Base64 to generate the Content-MD5 value. For more information, see RFC 2616 Content-MD5.
The request header can be used to check the validity of a message. The message content is valid only if the received message content is the same as the content that is sent. This parameter can be left empty.
For more information about how to calculate the value of Content-MD5, see Include signatures in the Authorization header.
Content-Type
String
No
application/octet-stream
The type of the request content. This parameter can be left empty.
Date
String
Yes
Sun, 22 Nov 2015 08:16:38 GMT
The time when this operation is performed. The value of this parameter must be in GMT. This parameter cannot be left empty.
ImportantIf the discrepancy between the time specified by the Date header in a request and the time on the server when the request is received is greater than 15 minutes, OSS rejects the request and returns HTTP status code 403.
CanonicalizedOSSHeaders
String
No
x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n
The HTTP headers that are prefixed with
x-oss-
and arranged in alphabetical order. This parameter can be left empty.If CanonicalizedOSSHeaders is left empty, you do not need to add the
\n
delimiter at the end.If CanonicalizedOSSHeaders includes only one header, the
\n
delimiter must be added at the end of the header. Example:x-oss-meta-a\n
.If CanonicalizedOSSHeaders includes multiple headers, you must add the
\n
delimiter at the end of each header. Example:x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n
.
For more information about how to construct CanonicalizedOSSHeaders, see Include signatures in the Authorization header.
CanonicalizedResource
String
Yes
/examplebucket/
The OSS resource that you want to access. This parameter cannot be left empty.
For more information about how to construct CanonicalizedResource, see Include signatures in the Authorization header.
Unknown parameter in Authorization header
Cause: An unknown parameter is used to calculate the Authorization header.
Solution: Configure the parameters described in the following table for the calculation of the Authorization header.
Parameter
Type
Required
Example
Description
AccessKeyId
String
Yes
LTAI********
The AccessKey ID that is used to access Object Storage Service (OSS).
AccessKeySecret
String
Yes
KZo1********
The AccessKey secret that is used to access OSS.
VERB
Enumeration
Yes
PUT
The method of the HTTP request, which can be PUT, GET, POST, HEAD, DELETE, or OPTIONS.
\n
String
No
\n
The line feed.
Content-MD5
String
No
eB5eJF1ptWaXm4bijSPyxw==
The MD5 hash of the requested content. The message content that excludes the header is calculated to obtain an MD5 hash. The MD5 hash is a 128-bit number that is encoded in Base64 to generate the Content-MD5 value. For more information, see RFC 2616 Content-MD5.
The request header can be used to check the validity of a message. The message content is valid only if the received message content is the same as the content that is sent. This parameter can be left empty.
For more information about how to calculate the value of Content-MD5, see Include signatures in the Authorization header.
Content-Type
String
No
application/octet-stream
The type of the request content. This parameter can be left empty.
Date
String
Yes
Sun, 22 Nov 2015 08:16:38 GMT
The time when this operation is performed. The value of this parameter must be in GMT. This parameter cannot be left empty.
ImportantIf the discrepancy between the time specified by the Date header in a request and the time on the server when the request is received is greater than 15 minutes, OSS rejects the request and returns HTTP status code 403.
CanonicalizedOSSHeaders
String
No
x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n
The HTTP headers that are prefixed with
x-oss-
and arranged in alphabetical order. This parameter can be left empty.If CanonicalizedOSSHeaders is left empty, you do not need to add the
\n
delimiter at the end.If CanonicalizedOSSHeaders includes only one header, the
\n
delimiter must be added at the end of the header. Example:x-oss-meta-a\n
.If CanonicalizedOSSHeaders includes multiple headers, you must add the
\n
delimiter at the end of each header. Example:x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n
.
For more information about how to construct CanonicalizedOSSHeaders, see Include signatures in the Authorization header.
CanonicalizedResource
String
Yes
/examplebucket/
The OSS resource that you want to access. This parameter cannot be left empty.
For more information about how to construct CanonicalizedResource, see Include signatures in the Authorization header.
Either the Signature query string parameter or the Authorization header should be specified, not both
Cause:
The Authorization field that is used to calculate the signature exists in the request header, and the OSSAccessKeyId, Expires, and Signature fields for signing exist in the request URI. Sample code:
PUT /example_file?OSSAccessKeyId=LTAI********&Expires=1141889120&Signature=vjby******** 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
Solution:
Include only the Authorization header or URI-based signature in the request.
The following sample code provides an example on how to use the Authorization header to calculate the signature:
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
The following sample code provides an example on how to use URI-based signing:
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
Cause: The OSSAccessKeyId form field is not specified in the headers of the POST request.
Solution: Check the bucket access control list (ACL). The OSSAccessKeyId form field is required when the bucket ACL is not public-read-write or when the policy or Signature form field is included in the request.
Post request signature is empty
Cause: The Signature form field is not specified in the headers of the POST request.
Solution: Check the bucket ACL. The Signature form field is required when the bucket ACL is not public-read-write or when the policy or OSSAccessKeyId form field is specified in the request.
Perform the following steps to calculate the value of the Signature form field:
Create a policy that is encoded in UTF-8.
Encode the policy in Base64. The result is the value of the policy form field, and the value is used as the string to be signed.
Use the AccessKey secret to sign the string in the following format:
Signature = base64(hmac-sha1(base64(policy), AccessKeySecret))
.
OSS authentication requires a valid Date
Cause: The value of the Date field in the Authorization header is invalid.
Solution: Make sure that the value of the Date field is in GMT. The Date field specifies the time when this operation was performed. Example:
Sun, 22 Nov 2015 08:16:38 GMT
.
The bucket POST must contain the specified field name
Cause: The POST request form contains invalid parameters, or the format of the parameter is invalid.
Solution: For more information, see PostObject.
The bucket POST contains unrecognized field name
Cause: The line after the
filename
field contains custom parameters.Solution: Make sure that the line after the
filename
field contains only theContent-Type
parameter, as shown in the following sample request:
The bucket POST must contain the specified 'key'. If it is specified, please check the order of the fields
Cause: The key form field is not specified in the POST request, or the order of the specified key form field is incorrect.
Solution: Specify the key form field in the POST request, and make sure that the key form field is placed before the file form field. For more information, see PostObject.
Post body size must be less than 5G
Cause: The total size of the POST request body exceeds 5 GB.
Solution: Make sure that the body of the POST request does not exceed 5 GB in size. For more information, see PostObject.
The callback configuration is not base64 encoded
Cause: The callback parameter is not encoded in Base64.
Solution: Set the callback parameter to a JSON string that is encoded in Base64. The string must contain the URL of the server to which the callback request is sent and the content of the callback request. For more information, see Callback.
The callback configuration is not json format
Cause: The callback parameter is not in the JSON format.
Solution: Set the callback parameter to a Base64-encoded JSON string. Sample code:
{ "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
Cause: The callback parameter does not contain the callbackUrl field, which specifies the URL of the server to which the callback request is sent.
Solution: Set the callback parameter to a Base64-encoded JSON string. The string must contain the URL of the server to which the callback request is sent and the content of the callback request.
The callback host configuration is invalid
Cause: The value of the callbackHost parameter is invalid and cannot be parsed as a JSON object.
Solution: Make sure that the value of callbackHost is valid. The callbackHost parameter specifies the Host header in the callback request. Example:
oss-cn-hangzhou.aliyuncs.com
. If the callbackHost parameter is not specified, OSS parses the URL specified by callbackUrl and sets the callbackHost parameter to the host parsed from the URL.
The callback body type configuration is invalid, or The body type of callback is not supported
Cause: The value of the callbackBodyType parameter is invalid and cannot be parsed as a JSON object.
Solution: Make sure that the value of callbackBodyType is valid. The callbackBodyType parameter specifies the Content-Type header in the callback request. Valid values:
application/x-www-form-urlencoded
andapplication/json
.
The number of callback url exceed max value
Cause: The value of callbackUrl contains more than five URLs.
Solution: Make sure that the callbackUrl parameter contains no more than five URLs. You can configure up to five URLs in a callback request and separate them with semicolon (;).
The header value specified by persistent header is not utf-8 encoded
Cause: The value of a custom header is invalid.
Solution: Encode Chinese characters in the value of the custom header in UTF-8.
The header value specified by persistent header is not equal to reqeust header value
Cause: The value of a custom header is different from that of a standard request header that has the same name.
Solution: Specify the same value for the custom header and the standard request header that has the same name.
The header value specified by persistent header contains CR or LF
Cause: The value of a custom header contains carriage returns (
\r
) or line feeds (\n
).Solution: Delete the carriage returns (
\r
) or line feeds (\n
) from the value of the custom header.
Either the callback query string parameter or the x-oss-callback header should be specified, not both
Cause: The request URL and the request header both contain the callback parameter.
Solution: Remove the callback parameter from the request URL or the request header. You can include the callback parameter only in one of these fields.
Either the callback-var query string parameter or the x-oss-callback-var header should be specified, not both
Cause: The request URL and the request header both contain the callback-var parameter.
Solution: Remove the callback-var parameter from the request URL or the request header. You can include the callback-var parameter only in one of these fields.
x-oss-traffic-limit should be specified either in query string or header, not both
Cause: The request URL and the request header both contain the
callback-var parameter
. This parameter is used to limit the transmission speed of a single link.Solution: Remove the
oss-traffic-limit
parameter from the request URL or the request header. You can include the oss-traffic-limit parameter only in one of these fields.
x-oss-traffic-limit is invalid, should be specified between 819200(100KB/s) and 838860800(100MB/s)
Cause: The transmission speed limit for a single link is invalid.
Solution: Set the transmission speed limit of a single link to a value from 819,200 bit/s (100 KB/s) to 838,860,800 bit/s (100 MB/s).
The format of persistent header is invalid, should be \"name:Base64Encode(value),name:Base64Encode(value)...\", or The header value specified by persistent header is not base64 encoded
Cause: The format of the custom headers is invalid.
Solution: Specify the custom headers in the
x-oss-persistent-headers: key1:base64_encode(value1),key2:base64_encode(value2)...
format, in which key1 and key2 are the keys of the custom headers, value1 and value2 are the values of the custom headers, and base64_encode specifies that the values of the custom headers are encoded in Base-64.For example, if you configure two custom headers named myheader1 and myheader2 and set myheader1 to myvalue1 and myheader2 to myvalue2, the custom headers contained in the request are
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
Cause: The keys and values of tags are not URL-encoded, and multiple tags have the same key.
Solution: Make sure that the tags are URL-encoded and have unique keys. A tag is a key-value pair used to identify an object. Object tags must comply with the following rules:
An object can have up to 10 tags. The tags added to an object must have unique keys.
A tag key can be up to 128 characters in length. A tag value can be up to 256 characters in length.
Tag keys and tag values are case-sensitive.
The tag keys and tag values can contain letters, digits, spaces, and the following special characters:
+ - = . _ : /
If the tags in the HTTP header contain characters, the tag keys and tag values must be URL-encoded.
The header specified by persistent header is reserved
Cause: The custom headers in the request conflict with the standard HTTP request headers.
Solution: Do not specify standard HTTP request headers as custom headers. Examples of standard HTTP request headers:
Host
,Content-MD5
,Origin
, andRange
.
The header specified by persistent header is not valid HTTP token
Cause: The custom headers in the request contain invalid characters.
Solution: Make sure that custom headers do not contain invalid characters that are defined in RFC 7230.
Can not get ip by this host
Cause: The value of the Host header is invalid.
Solution: The value of the Host header can be the domain name of a bucket or an IP address. The domain name of a bucket is in the
BucketName.Endpoint
format. Example:examplebucket.oss-cn-hangzhou.aliyuncs.com
. If the value of the Host header is an IP address, make sure that the IP address is valid.
Private address is forbidden to callback
Cause: OSS cannot send callback requests to an IP address that resides in the internal network.
Solution: Set the URL of the server to which callback requests are sent to a public IP address.
The length of callback exceed max value
Cause: The total size of the Base64-encoded callback content exceeds 5 KB.
Solution: Make sure that the total size of the Base64-encoded callback content does not exceed 5 KB.
The callback body is empty
Cause: The callbackBody parameter is not specified.
Solution: Set the callback parameter to a Base64-encoded JSON string. The string must contain the URL of the server to which the callback request is sent (callbackUrl) and the content of the callback request (callbackBody).
The callback body is invalid
Cause: The value of the callbackBody parameter is invalid and cannot be parsed as a JSON object.
Solution: Make sure that the value of callbackBody is valid. The callbackBody parameter specifies the value of the callback request body. Example:
key=$(object)&etag=$(etag)&my_var=$(x:my_var)
. For more information, see Callback.
The length of callback var exceed max value
Cause: The total size of the Base64-encoded content of the callback-var parameter exceeds 5 KB.
Solution: Make sure that the total size of the Base64-encoded content of the callback-var parameter does not exceed 5 KB.
The callback var is not expecten json
Cause: The callback-var parameter is not specified in the JSON format.
Solution: Make sure that the callback-var parameter is specified in the JSON format. The callback-var parameter is used to configure custom parameters, which are key-value pairs. The key of a custom parameter must be in lowercase and start with
x:
. For example, you want to configure two custom parameters whose keys arex:var1
andx:var2
. The value of x:var1 is value1, and the value of x:var2 is value2. The callback-var parameter can be specified in the following JSON format:{ "x:var1":"value1", "x:var2":"value2" }
Invalid date. Must be later than 1970-01-01 00:00:00
Cause: The value of the Date parameter is a UNIX timestamp that is earlier than 00:00:00, January 1, 1970.
Solution: Set the Date parameter to a UNIX timestamp that is later than 00:00:00, January 1, 1970.
Invalid date. Cannot be later than the current time
Cause: The value of the Date parameter is a UNIX timestamp that is later than the current time.
Solution: Set the Date parameter to a UNIX timestamp that is earlier than the current time.
Bad date format
Cause: The value of the Date parameter is invalid.
Solution: Set the Date parameter to a value that meets the date format defined in RFC 1123. Example:
Sun, 06 Nov 1994 08:49:37 GMT
.
The Versioning element must be specified
Cause: The versioning state of the bucket is not specified in the <VersioningConfiguration> field.
Solution: Specify the versioning state of the bucket in the <VersioningConfiguration> field. Sample code:
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
Cause: The specified tag key already exists.
Solution: Call GetBucketTags to query information about the tags of the bucket, and then configure a new tag for the bucket. For more information, see PutBucketTags.
InvalidHostPutBucket
Your host is invalid. Please put bucket use Open Storage Service standard host
Cause: The value of the Host parameter is invalid.
Solution: Set the Host parameter to a standard domain name. For more information about regions and endpoints, see Regions and endpoints.
InvalidEncryptionAlgorithmError
The encryption algorithm specified is not valid or The Encryption request you specified is not valid. Supported value: AES256/SM4/KMS.
Cause: The value of
x-oss-server-side-encryption
is invalid.Solution: Set
x-oss-server-side-encryption
to AES256 or KMS. For more information about server-side encryption, see PutObject.
InvalidDataEncryptionAlgorithmError
The KMS Data Encryption request you specified is not valid. Supported value:SM4
Cause: The encryption algorithm specified in the request is invalid.
Solution: Make sure that the encryption algorithm specified in the request is supported. If you set x-oss-server-side-encryption to KMS, only the SM4 encryption algorithm is supported. For more information, see Server-side encryption.
InvalidParameter
The specified parameter KMS keyId is not valid
Cause: The CMK ID is invalid.
Solution: Specify a valid CMK ID. If you set x-oss-server-side-encryption to KMS and want to use a CMK to encrypt objects, you must specify the CMK ID in the request. Example:
9468da86-3509-4f8d-a61e-6eab1eac****
.
InvalidWORMConfiguration
Invalid WORM Configuration
Cause: The specified retention policy is invalid.
Solution: Call InitiateBucketWorm to create a retention policy for a bucket. The following code provides an example on how to create a retention policy for a bucket:
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
Cause: You have configured the maximum number of inventories for the bucket. The maximum number of inventories that can be configured for a bucket is 1,000.
Solution: Submit a ticket to increase the maximum number of inventories that can be configured for a bucket.
DailyInventoryExceedLimit
daily inventory object count exceed limit
Cause: The number of objects in the bucket exceeds the daily export limit for inventory lists.
Solution: If you want to export inventory lists on a daily basis, make sure that the number of objects in the bucket is less than 10 billion.
If the number of objects in a bucket is greater than or equal to 10 billion, we recommend that you export inventory lists on a weekly basis.
WeeklyInventoryExceedLimit
weekly inventory object count exceed limit
Cause: The number of objects in the bucket exceeds the weekly export limit for inventory lists.
Solution: If you want to export inventory lists on a weekly basis, make sure that the number of objects in the bucket is less than 50 billion.
If the number of objects in a bucket is greater than or equal to 50 billion:
Export inventory lists by prefix in several batches.
Submit a ticket to increase the number of inventory lists that can be exported.
BadRequest
Insufficient information. Origin request header needed
Cause: The request does not contain the Origin header.
Solution: Include the Origin header in the request. Before the browser sends a cross-origin request, the browser sends a preflight (OPTIONS) request that contains the Origin header to identify the origin from which the request is sent. The following code provides an example:
Insufficient information. Request Access-Control-Request-Method header neede
Cause: The request does not contain the Access-Control-Request-Method header.
Solution: Include the Access-Control-Request-Method header in the request. Before the browser sends a cross-origin request, the browser sends a preflight (OPTIONS) request that contains the Access-Control-Request-Method header to identify the method used for the request. The following code provides an example:
RequestTimeout
Your socket connection to the server was not read from or written to within the timeout period. Idle connections will be closed
Cause: The request timed out due to poor network performance or invalid network configurations.
Solution: Check your network performance and modify your network configurations as required. For more information, see Network connection timeout handling.
InvalidTaggingKey
The tagging key you provided is invalid
Cause: The key of the object tag is invalid.
Solution: Make sure that the tag key is valid. An object tag is a key-value pair used to identify an object. Object tags must comply with the following rules:
A tag key can be up to 128 characters in length. A tag value can be up to 256 characters in length.
Tag keys and tag values are case-sensitive.
The tag keys and tag values can contain letters, digits, spaces, and the following special characters:
+ - = . _ : /
If the tags in the HTTP header contain characters, the tag keys and tag values must be URL-encoded.
TooManyCname
You have attempted to create more cname than allowed
Cause: You have mapped the maximum number of domain names to the bucket. The maximum number of domain names that can be mapped to a bucket is 100.
Solution: Submit a ticket to increase the maximum number of domain names that can be mapped to a bucket.
InvalidChannelName
The Length of channel name must be less than 64
Cause: The length of the channel name exceeds the limit.
Solution: Make sure that the name is 1 to 64 characters in length.
ChannelName must not be empty
Cause: The ChannelName field is left empty.
Solution: Specify a valid value for the ChannelName field. The channel name must comply with the following naming rules:
The name must be encoded in UTF-8.
The name must be 1 to 64 characters in length.
The name cannot contain forward slashes (/) or backslashes (\).
The characters encoding must be utf-8
Cause: The encoding method of the channel name is invalid.
Solution: Encode the channel name in UTF-8.
ChannelName must not contain a slash
Cause: The channel name contains a slash.
Solution: Make sure that the channel name does not contain forward slashes (/) or backslashes (\).
InvalidPart
One or more of the specified parts could not be found or the specified entity
Cause: The part number or ETag value of a part in the CompleteMultipartUpload operation is invalid.
Solution: Make sure that the values of PartNumber and ETag are valid. OSS verifies the values of PartNumber and ETag when you call the CompleteMultipartUpload operation.
The value of PartNumber ranges from 1 to 10000. The part numbers listed in the request can be non-consecutive but must be sorted in ascending order. For example, if the part number of the first part is 1, the part number of the second part can be 5.
The ETag value of an object created when you call the CompleteMultipartUpload operation is the UUID of the object. The ETag value of an object can be used to check whether the object content is modified.
InvalidPartOrder
The list of parts was not in ascending order
Cause: The part numbers of the parts submitted when you call the CompleteMultipartUpload operation are not sorted in ascending order.
Solution: Make sure that the part numbers of the parts submitted when you call the CompleteMultipartUpload operation are sorted in ascending order. For example, if the part number of the first part is 1, the part number of the second part can be 5.
Part number must be an integer between 1 and 10000, inclusive
Cause: The value of PartNumber is invalid.
Solution: Make sure that the value of PartNumber ranges from 1 to 10000.
FilePartNotExist
The Part you read had been deleted
Cause: The part specified in the request does not exist.
Solution: Make sure that all parts are uploaded. For more information, see CompleteMultipartUpload.
InvalidXMLFormat
The XML you provided was not well-formed
Cause: Parameter configurations are not in the XML format.
Solution: Make sure that parameters are configured in the XML format.
InvalidRequest
Request specific response headers cannot be used for anonymous GET requests
Cause: The request does not contain all required parameters.
Solution: Make sure that all required parameters of the API operation are included in the request. For more information, see List of operations by function.
Security-token must be provided by query string parameter
Cause: The request does not contain a security token.
Solution: Make sure that the request contains a security token when a temporary user uses a signed URL to access OSS resources. Temporary users can use a signed URL in the following format to access OSS resources:
http://oss-example.oss-cn-hangzhou.aliyuncs.com/oss-api.pdf?OSSAccessKeyId=nz2pc56s936****&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv****&security-token=SecurityToken
. For more information, see Create a signed URL by using signature V1.
Size of playlist is too big
Cause: The size of the playlist file exceeds the limit.
Solution: Make sure that the size of the playlist file does not exceed 1 MB.
No ts found in the playlist
Cause: No Transport Streams (TS) objects are found.
Solution: Ingest a stream to upload audio and video objects. For more information, see PutLiveChannel.
Playlist name must ends with \".m3u8\"
Cause: The name of the playlist file does not end with
.m3u8
.Solution: Check the uploaded file. If the uploaded file uses the HTTP Live Streaming (HLS) protocol, specify the name of the generated .m3u8 playlist file. The name of the generated playlist file must end with
.m3u8
and can be 6 to 128 characters in length. Example:playlist.m3u8
.
Master playlist has ts file
Cause: The master playlist contains both M3U8 files and TS files.
Solution: Make sure that only M3U8 files or TS files are included in the master playlist. Playlist files are in the M3U8 format and are used to record the information about the video files in the TS format. For more information, see Create HLS streams based on OSS.
MaxPOSTPreDataLengthExceededError
Your POST request fields preceding the upload file were too large
Cause: The size of the object that you want to upload by using PostObject exceeds 5 GB.
Solution: Make sure that the size of the object that you want to upload by using PostObject does not exceed 5 GB. For more information, see PostObject.
TooManyPipes
Maximal number of pipes supported is
Cause: The number of operations performed on the image exceeds the limit.
Solution: Make sure that the number of operations that you perform on the image does not exceed the limit.
FieldItemTooLong
Your name of form field is too long
Cause: The total size of the form fields in the PostObject request exceeds the limit.
Solution: Make sure that the form fields in the request excluding the file form field do not exceed 4 KB in size. For more information, see PostObject.
MalformedPOSTRequest
The body of your POST request is not well-formed multipart/form-data
Cause: The format of a form field in the PostObject request is invalid.
Solution: Make sure that the format of the form field is valid.
Form fields must be in the following format:
Content-Disposition: form-data; name="{key}"\r\n\r\n{value}\r\n--{boundary}
The following code provides an example of a PostObject request:
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
Take note of the following items when you initiate a PostObject request:
The request must contain the Content-Type: multipart/form-data; boundary={boundary} header.
The request header and body are separated by
\r\n--{boundary}
.\r\n
is displayed as a line feed.The names of form fields are case-sensitive, such as
policy
,key
,file
,OSSAccessKeyId
,OSSAccessKeyId
, andContent-Disposition
.The last form field must be
file
.If the ACL of the bucket is
public-read-write
, you do not need to specify the following form fields:OSSAccessKeyId
,policy
, andSignature
. If you specify one of the fields, you must specify the other two fields regardless of whether the ACL of the bucket ispublic-read-write
.
NoteThe preceding PostObject request is incomplete. For the complete request sample, see PostObject.
For more information about the PostObject request, see the sample code in the following programming languages:
InvalidPolicyDocument
Invalid Policy: Invalid Simple-Condition: Simple-Conditions must have exactly one property specified
Cause: The policy header in the request does not contain the
conditions
field.Solution: Make sure that the policy header contains at least one
conditions
field.
Invalid Policy: Invalid JSON: unknown char e
Cause: The format of the policy header in the request is invalid.
Solution: Make sure that the policy header contains double quotation marks (
"
) and a backslash (\
) is added before each escape character.
Invalid Policy: Invalid JSON: , or ] expected
Cause: The format of the policy header in the request is invalid.
Solution: Make sure that no commas (
,
) or right brackets (]
) are missing in the policy header.
IncorrectNumberOfFilesInPOSTRequest
POST requires exactly one file upload per request
Cause: The number of file form fields in the PostObject request exceeds the limit. A PostObject request can contain only one
file
form field.Solution: Make sure that the PostObject request contains only one
file
form field.
EntityTooSmall
Your proposed upload smaller than the minimum allowed size
Cause: The size of the object that you want to upload is smaller than the minimum value.
Solution: When you call PostObject to upload objects, configure the policy header to specify the valid values of form fields. You can configure the
content-length-range
condition to specify the maximum and minimum sizes of the object that you want to upload.
EntityTooLarge
Your proposed upload exceeds the maximum allowed size or Source object Length exceeds the maximum allowed size.
Cause: The size of the object that you want to upload exceeds the upper limit.
Solution: When you call PostObject to upload objects, configure the policy header to specify the valid values of form fields. You can configure the
content-length-range
condition to specify the maximum and minimum sizes of the object that you want to upload. For more information, see PostObject.
MalformedXML
The XML you provided was not well-formed or did not validate against our published schema
Cause: The format of the XML body of the request is invalid.
Solution: Make sure that the format of the XML request body is valid.
For more information about XML body format requirements for different requests, see the following topics:
NoReplicationRule
No replication rule specified
Cause: No cross-region replication (CRR) rules are configured for the bucket specified in the request.
Solution: Configure CRR rules for the bucket. For more information, see PutBucketReplication.
TooManyReplicationRules
OSS only support one replication rule now
Cause: The number of CRR rules configured for the bucket exceeds the limit.
Solution: Make sure that the bucket for which you want to configure a CRR rule does not have an existing CRR rule. You can configure only one CRR rule for each bucket.
InvalidBucketStatus
The src and dest bucket must be versioning enabled when drs tagging rule exist
Cause: The versioning states of the source bucket and destination bucket in CRR are different.
Solution: Make sure that the source bucket and destination bucket in CRR have the same versioning state.
InvalidTargetBucket
The target bucket is invalid for bucket replication
Cause: The destination bucket in the CRR rule is invalid.
Solution: Call GetBucketReplicationLocation to query the regions in which the destination bucket can be located. You can determine the region of the destination bucket based on the response returned for the operation.
InvalidTargetLocation
The target bucket you specified does not locate in the target location
Cause: The specified destination bucket does not exist in the destination region.
Solution: Make sure that the region specified in the request is correct.
BadReplicationLocation
The replication location you choose is invalid
Cause: The destination region specified in the CRR request does not exist.
Solution: Make sure that the region specified in the request is correct.
NoReplicationLocation
The bucket does not have corresponding replication location
Cause: No matching destination region is available for the source region of CRR.
Solution: Check the available destination regions of CRR. For more information, see GetBucketReplicationLocation.
BucketReplicationAlreadyExist
Bucket replication already exists
Cause: A CRR rule already exists between the source bucket and the destination bucket.
Solution: Delete the existing CRR rule before you configure a new rule.
TooManyIncomingReplication
You have attempted to create more incoming replication for bucket than allowed
Cause: You have already configured 100 CRR rules for the bucket.
Solution: By default, up to 100 CRR rules can be configured for a bucket. If your business requires more than 100 CRR rules for a bucket, submit a ticket.
TooManyOutgoingReplication
You have attempted to create more outgoing replication for bucket than allowed
Cause: You have already configured 100 CRR rules for the bucket.
Solution: By default, up to 100 CRR rules can be configured for a bucket. If your business requires more than 100 CRR rules for a bucket, submit a ticket.
CORSRuleBeyondLimit
The CORS Rules num is beyond limit
Cause: The number of cross-origin resource sharing (CORS) rules configured for the bucket exceeds the limit.
Solution: Make sure that the number of CORS rules configured for the bucket does not exceed the limit. You can configure up to 10 CORS rules for a bucket. For more information, see PutBucketCors.
TooManyTags
The bucket tags num is beyond limit
Cause: The number of tags configured for the bucket exceeds the limit.
Solution: Make sure that the number of tags configured for the bucket does not exceed the limit. You can configure up to 20 tags for a bucket. For more information, see PutBucketTags.
TooManyPrefixes
The bucket replication rule's prefixes number is beyond limit
Cause: The number of prefixes specified in the CRR rule exceeds the limit.
Solution: Make sure that the number of prefixes specified in the CRR rule does not exceed the limit. You can specify up to 10 prefixes in a CRR rule to synchronize only objects whose names contain the specified prefixes to the destination bucket.
TooManyFilterObjectTags
The bucket replication rule's filter object tags number is beyond limit
Cause: The number of object tags specified in the CRR rule exceeds the limit.
Solution: Make sure that the number of object tags specified in the CRR rule does not exceed the limit. You can specify up to 10 tags in a CRR rule to synchronize only objects that have the specified tags to the destination bucket.
InvalidDigest
The Content-MD5 you specified was invalid
Cause: The value of the Content-MD5 request header is different from the Content-MD5 value of the message body calculated by OSS.
Solution: For more information, see Include signatures in the Authorization header.
InvalidCRC64
The x-oss-hash-crc64ecma you specified does not match what we calculated
Cause: The CRC-64 value returned by the server is different from the CRC-64 value calculated by the local client.
Solution: For more information, see Check data integrity by using CRC-64.
InlineDataTooLarge
Inline data exceeds the maximum allowed size
Cause: The size of the object that you want to upload exceeds the limit.
Solution: Make sure that the size of the object does not exceed the limit for the method used to upload the object.
An object that you want to upload by using simple upload cannot be larger than 5 GB in size. For more information, see Simple upload.
An object that you want to upload by using form upload cannot be larger than 5 GB in size. For more information, see Form upload.
An object that you want to upload by using append upload cannot be larger than 5 GB in size. For more information, see Append upload.
An object that you want to upload by using multipart upload cannot be larger than 48.8 TB in size. For more information, see Multipart upload.
ImageTooLarge
Maximal size of image supported is
Cause: The size of the source image exceeds the limit.
Solution: Make sure that the source image meets the following requirements:
The size of the source image cannot exceed 20 MB.
The width or height of the source image cannot exceed 4,096 pixels for image rotation.
Each edge of the source image cannot exceed 30,000 pixels.
IncompleteBody
You did not provide the number of bytes specified by the Content-Length HTTP header
Cause: The value of the Content-Length request header is different from the size of the data that is sent.
Solution: Set the Content-Length header to the actual size of the data that you want to send.
KmsServiceNotEnabled
This user does not turn on KMS service
Cause: KMS is not activated when you set the encryption method for server-side encryption to KMS.
Solution: Make sure that KMS is activated before you set the encryption method for server-side encryption to KMS. For more information, see Purchase a dedicated KMS instance.
OperationNotSupported
The operation is not supported for this resource
Cause: The specified operation is not supported for the resources. This error may occur in the following scenarios:
Convert an appendable object or a symbolic link to a Cold Archive or Deep Cold Archive object.
Call the RestoreObject operation to restore an object whose storage class is not Archive, Cold Archive, or Deep Cold Archive.
Solutions:
Call the PutObject operation to upload an object with the same name to overwrite the appendable object as a normal object. Then, convert the storage class of the normal object to Cold Archive or Deep Cold Archive.
When you call the RestoreObject operation to restore an object, make sure that the storage class of the object is Archive, Cold Archive, or Deep Cold Archive.
For more information about the supported operations of different resources, see List of operations by function.
NotSymlink
The object is not symlink
Cause: The operation is not performed on a symbolic link.
Solution: Make sure that the PutSymlink or GetSymlink operation is performed only on symbolic links.
InvalidTag
The TagKey you have provided is invalid, or The TagValue you have provided is invalid
Cause: The key or value of the tag configured for the bucket is invalid.
Solution: Make sure that the key and value of the tag configured for the bucket comply with the following naming rules:
The key and value must be encoded in UTF-8.
The key can be up to 64 characters in length and cannot contain the
http://
,https://
, orAliyun
. prefix. The key cannot be left empty.The value can be up to 128 characters in length. The value can be left empty.
InvalidEncryptionRequest
The parameters of client encryption are allowed to be set once
Cause: You attempted to call the CopyObject operation to modify object metadata protected by client-side encryption.
Solution: Do not use CopyObject to modify object metadata. After you upload objects encrypted on the client, object metadata related to client-side encryption is protected. In this case, CopyObject cannot be used to modify object metadata. For more information, see CopyObject.
Miss some necessary client encryption meta parameters
Cause: The request does not contain all required parameters related to client-side encryption.
Solution: Make sure that all required parameters described in the following table are specified in the request.
Parameter
Description
x-oss-meta-client-side-encryption-key
The encrypted data key, which is a string encrypted by using a CMK and encoded in Base64.
x-oss-meta-client-side-encryption-start
The initial value, which is randomly generated for data encryption. The value is a string encrypted by using a CMK and encoded in Base64.
x-oss-meta-client-side-encryption-cek-alg
The algorithm used to encrypt data.
x-oss-meta-client-side-encryption-wrap-alg
The algorithm used to encrypt the data key.
The parts count calculated by client encryption meta is too large
Cause: The number of parts calculated in the client-side encryption scenario exceeds the limit.
Solution: Make sure that the object is split into no more than 10,000 parts.
The client encryption meta data_size or part_size is invalid
Cause: The total size or part size in the client-side encryption scenario is invalid.
Solution: Make sure that the total object size and the part size are valid. The part size must be a positive integer multiple of 16. When you perform client-side encryption on an object that you want to upload by using multipart upload, you must configure the total size (x-oss-meta-client-side-encryption-data-size) and part size (x-oss-meta-client-side-encryption-part-size) of the object during multipart upload initiation. For more information, see Client-side encryption.
The client encryption part list is unexpected with init_multipart setted
Cause: The number of parts uploaded to OSS is different from the number of parts specified when the multipart upload task is initiated.
Solution: Make sure that the specified number of parts is the same as the number of parts that are uploaded to OSS.
The partId must less or equal to expectedPartNumber
Cause: The ID of a part is greater than the total number of parts.
Solution: Make sure that the ID of each part is less than or equal to the total number of parts. For more information, see UploadPart.
The partSize must same with init_multipart setted except last part
Cause: The part size in the UploadPart operation is different from the part size specified when the multipart upload task is initiated.
Solution: Make sure that the size of all parts except for the last part is the same as the part size specified when the multipart upload task is initiated. For more information, see UploadPart.
The last partSize must same with init_multipart setted
Cause: The total size of the uploaded parts is different from the total size specified when the multipart upload task is initiated.
Solution: After the last part is uploaded, make sure that the total size of the uploaded parts is the same as the total size specified when the multipart upload task is initiated. For more information, see CompleteMultipartUpload.
The client encryption meta is inconsistent with init_multipart setted
Cause: The encryption information about the multipart upload task configured on the client is different from the encryption information configured when the multipart upload task is initiated.
Solution: Make sure that the encryption information about the multipart upload task configured on the client is the same as the encryption information configured when the multipart upload task is initiated. For more information, see Client-side encryption.
Client encryption doesn't support upload part copy
Cause: UploadPartCopy cannot be called to upload a part from an object that is encrypted on the client.
Solution: You can call UploadPartCopy to upload a part only when you copy data from an existing object that is not encrypted on the client. For more information, see UploadPartCopy.
UserKeyMustBeSpecified
User key must be specified
Cause: The request does not contain the name of the object that you want to delete.
Solution: Specify the name of the object that you want to delete in the request. For more information, see DeleteMultipleObjects.
InvalidTargetBucketForLogging
Put bucket log requester is not target bucket owner
Cause: The destination bucket specified to store log objects does not exist.
Solution: Specify a valid destination 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
Cause: The part number or ETag value of a part submitted when you call the CompleteMultipartUpload operation is invalid.
Solution: Make sure that the part numbers and ETag values of all parts submitted when you call the CompleteMultipartUpload operation are valid. For more information, see CompleteMultipartUpload.
InvalidPartOrder
The list of parts was not in ascending order
Cause: The part numbers of the parts submitted when you call the CompleteMultipartUpload operation are not sorted in ascending order.
Solution: Make sure that the part numbers of the parts submitted when you call the CompleteMultipartUpload operation are sorted in ascending order. For more information, see CompleteMultipartUpload.
Part number must be an integer between 1 and 10000, inclusive
Cause: The value of partNumber is invalid. The valid values of partNumber range from 1 to 10000.
Solution: Make sure that the value of partNumber is within the valid range. For more information, see CompleteMultipartUpload.
InvalidEncryptionAlgorithmError
The encryption algorithm specified is not valid
Cause: The value of
x-oss-server-side-encryption
is invalid. Valid values:AES256
andKMS
.Solution: Make sure that x-oss-server-side-encryption is set to a valid value. For more information, see PutObject.
InvalidTargetType
The symbolic's target file type is invalid
Cause: The object is a symbolic link, and the object to which the link points is also a symbolic link.
Solution: Make sure that the object to which the symbolic link points is not a symbolic link.
MissingAccessKeyId
MissingAccessKeyId AccessKeyId is mandatory for this action
Cause: The AccessKey ID is not specified.
Solution: Specify a valid AccessKey ID.