ユーザーが OSS にアクセスしたときにエラーが発生した場合、OSS はエラーコードとエラーメッセージを返すので、問題を見つけてエラーを適切に処理することができます。

OSS エラー応答形式

ユーザーが OSS にアクセスしたときにエラーが発生した場合、OSS は HTTP ステータスコード 3xx、4xx、または 5xx とメッセージ本文を application/XML 形式で返します。

返されたエラーのメッセージ本文の例:

<?  xml version="1.0" ? >
                <Error xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”>
                <Code>
        AccessDenied
        </Code> 
        <Message>
        Query-string authentication requires the Signature, Expires and OSSAccessKeyId parameters
        </Message>
    <RequestId>
        1D842BC5425544BB
    </RequestId>
    <HostId> 
        oss-cn-hangzhou.aliyuncs.com
        </HostId>
        </Error> 

すべてのエラーメッセージ本文には、次の要素が含まれています。

  • Code: OSS がユーザーに返すエラーコード
  • Message: OSSが提供する詳細なエラーメッセージ
  • RequestId: 要求を一意に識別する UUID。 問題を解決できない場合は、RequestId を提供することで OSS 開発エンジニアにヘルプを求めることができます。
  • HostId: アクセスされた OSS クラスターを識別するために使用され、ユーザー要求で伝えられたホスト ID と一致します。

特殊なエラー情報要素については、特定の要求の説明をご参照ください。

OSS エラーコード

次のテーブルに OSS エラーコードを示します。

エラーコード 説明 HTTP ステータスコード 説明
AccessDenied アクセスは拒否されました。 403 原因とトラブルシューティングについては、「OSS の権限に関するトラブルシューティング」をご参照ください。
BucketAlreadyExists バケットが既に存在します。 409 CreateBucket 操作で指定されたバケット名が使用されています。 新しい BucketName を選択します。 用語
BucketNotEmpty バケットは空ではありません。 409 DeleteBucket 操作を実行する前に、バケット内のファイルと未完成のマルチパートアップロードタスクを削除します。
CallbackFailed アップロードコールバックが失敗します。 203 原因とトラブルシューティングについては、「アップロードコールバック」をご参照ください。
EntityTooLarge エンティティが大きすぎます。 400 Post 要求のメッセージ長が 5 GB を超過しています。 原因とトラブルシューティングについては、「PostObject」をご参照ください。
EntityTooSmall エンティティが小さすぎます。 400 Post 要求のメッセージ長が短すぎます。 トラブルシューティングについては、「オブジェクトのポストエラーとトラブルシューティング」をご参照ください。
FieldItemTooLong Post 要求のフォームフィールドが大きすぎます。 400 file を除くすべてのフォームフィールドのサイズは 4 KB より大きくすることはできません。 トラブルシューティングについては、「オブジェクトのポストエラーとトラブルシューティング」をご参照ください。
FilePartInterity ファイルのパーツが変更されました。 400 パーティションデータの読み取り中、データとチェックサムが一致しません。
FilePartNotExist ファイルのパーツが存在しません。 400 CompleteMultipartUpload 操作によって送信されたパーティションはアップロードされません。
FilePartStale ファイルのパーツがタイムアウトしました。 400 パーティションデータの読み取り中、データと長さが一致しません。
IncorrectNumberOfFilesInPOSTRequest Post 要求内のファイル数が無効です。 400 Post 要求のフォームフィールドには、1 つの file フィールドのみが許可されます。 トラブルシューティングについては、「オブジェクトのポストエラーとトラブルシューティング」をご参照ください。
InvalidArgument ポート形式が正しくありません。 400 パラメーターの形式が要件を満たしていません。 対応する API の指示に従ってください。
InvalidAccessKeyId AccessKeyID が存在しません。 403 AccessKeyId が無効、もしくはタイムアウトしました。 トラブルシューティングについては、「OSS 403 エラー」をご参照ください。
InvalidBucketName バケット名が無効です。 400 バケットの命名規則については、 「開発者ガイド」をご参照ください。
InvalidDigest 無効なダイジェストです。 400 指定された MD5 チェックサムはファイルと矛盾しています。 MD5 の計算については、「PutObject」 をご参照ください。
InvalidEncryptionAlgorithmError 指定されたエントロピー暗号化アルゴリズムが正しくありません。 400 現在、AES256 暗号化アルゴリズムのみがサポートされています。 詳しくは、「PutObject」 をご参照ください。
InvalidObjectName オブジェクト名が無効です。 400 オブジェクトの命名規則については、「開発者ガイド」をご参照ください。
InvalidPart パーツが無効です。 400 CompleteMultipartUpload 操作によって送信されたパーツは無効です。 PartNumber または ETag が間違っています。
InvalidPartOrder パーツシーケンスが無効です。 400 CompleteMultipartUpload 操作によって送信されたパーツは、PartNumber の昇順の並べ替え順序になっています。
InvalidPolicyDocument ポリシー文書が無効です。 400 Post 要求の Policy が無効です。 トラブルシューティングについては、「PostObject」 をご参照ください。
InvalidTargetBucketForLogging ログ操作に無効なターゲットバケットが存在します。 400 ログを格納する対象のバケットが存在しません。 バケットを変更してください。
InternalError OSS でエラーが発生しています。 500 再試行してください。
MalformedXML XML 形式が無効です。 400 特定の要求により無効です。ただし、要求内の XML は、DeleteObjectsCompleteMultipartUploadPutBucketLoggingPutBucketWebsitePutBucketLifecyclePutBucketRefererPutBucketCORS は除きます。
MalformedPOSTRequest Post 要求の本文形式が無効です。 400 フォームフィールド形式が無効です。 トラブルシューティングについては「PostObject」をご参照ください。
MaxPOSTPreDataLengthExceededError Post 要求のアップロードされたファイルコンテンツ以外の本文のサイズが大きすぎます。 400 file を除くすべてのフォームフィールドのサイズは 4 KB より大きくすることはできません。 トラブルシューティングについては、「PostObject」をご参照ください。
MethodNotAllowed サポートされていないメソッドです。 405 OSS でサポートされていないメソッドでリソースにアクセスします。
MissingArgument 引数がありません。 411 エラーを解決するため、特定の API をご参照ください。
MissingContentLength コンテンツの長さがありません。 411 メッセージが チャンクエンコード されておらず、Content-Length がありません。
NoSuchBucket バケットが存在しません。 404
NoSuchKey オブジェクトが存在しません。 404
NoSuchUpload マルチパートアップロード ID が存在しません。 404 マルチパートアップロードを初期化していないか、初期化されたマルチパートアップロードの有効期限が切れています。
NotImplemented そのメソッドは実装できません。 400 OSS でサポートされていない操作です。
ObjectNotAppendable 追加可能なファイルではありません。 409 OSS には、normalappendable、および multipart の 3 つのファイルタイプがあります。 AppendObject 操作を実行できるのは、appendable タイプのファイルだけです。
PositionNotEqualToLength 追加位置がファイル長と一致しません。 409 詳しくは、「AppendObject 」をご参照ください。
PreconditionFailed 前処理エラーです。 412 ダウンロード条件が満たされていません。 詳しくは、「GetObject」をご参照ください。
RequestTimeTooSkewed 要求開始時間がサーバー時間を15分超過しています。 403 トラブルシューティングについては、「OSS 403 エラー」をご参照ください。
RequestTimeout 要求がタイムアウトしました。 400 再試行してください。
RequestIsNotMultiPartContent Post 要求のコンテンツタイプが無効です。 400 トラブルシューティングについては、「PostObject」をご参照ください。
Downloadtrafficratelimitexceeded ダウンロードトラフィックが制限を超過しています。 503

既定の上限は、イントラネットトラフィックとインターネットトラフィックを含む 5 GB です。 上限を調整するにはチケットを起票し、サポートセンターへお問い合わせください。

UploadTrafficRateLimitExceeded アップロードトラフィックが制限を超過しています。 503

既定の上限は、イントラネットトラフィックとインターネットトラフィックを含む 5 GB です。 上限を調整するにはチケットを起票し、サポートセンターへお問い合わせください。

SignatureDoesNotMatch 署名エラーです。 403 トラブルシューティングについては、「ヘッダーへの署名の追加」と「URL への署名の追加」をご参照ください。
TooManyBuckets バケット数が制限を超過しています。 400

デフォルト値は 10 です。 上限を調整するにはチケットを起票し、サポートセンターへお問い合わせください。

SDK / ツールの一般的なエラーとトラブルシューティング

OSS でサポートされていない操作

OSS でサポートされていない操作を行ってリソースにアクセスすると、OSS はエラー "405 Method Not Allowed" を返します。

無効な要求の例:
ABC /1.txt HTTP/1.1
Host: bucketname.oss-cn-shanghai.aliyuncs.com
Date: Thu, 11 Aug 2016 03:53:40 GMT
Authorization: signatureValue
返されたエラーの例:
HTTP/1.1 405 Method Not Allowed
Server: AliyunOSS
Date: Thu, 11 Aug 2016 03:53:44 GMT
Content-Type: application/xml
Content-Length: 338
Connection: keep-alive
x-oss-request-id: 57ABF6C8BC4D25D86CBA5ADE
Allow: GET DELETE HEAD PUT POST OPTIONS
<?  xml version="1.0" encoding="UTF-8"? >
<Error> 
<Code>MethodNotAllowed</Code>
<Message>The specified method is not allowed against this resource.</Message> 
  <RequestId>57ABF6C8BC4D25D86CBA5ADE</RequestId>
  <HostId>bucketname.oss-cn-shanghai.aliyuncs.com</HostId>
  <Method>abc</Method>
  <ResourceType>Bucket</ResourceType>
  </Error> 
アクセスするリソースが /bucket/ の場合、ResourceType は bucket に設定する必要があります。アクセスするリソースが /bucket/object の場合、ResourceType は object に設定する必要があります。

OSS ではサポートされているが、パラメーターではサポートされていない操作

OSS でサポートされていないパラメーターが OSS でサポートされている操作に追加された場合 (たとえば、If-Modified-Since パラメーターが PUT 操作に追加された場合)、OSS はエラー 400 Bad Request を返します。

無効な要求の例:
PUT /abc.zip HTTP/1.1
Host: bucketname.oss-cn-shanghai.aliyuncs.com
Accept: */*
Date: Thu, 11 Aug 2016 01:44:50 GMT
If-Modified-Since: Thu, 11 Aug 2016 01:43:51 GMT
Content-Length: 363
応答例:
HTTP/1.1 400 Bad Request
Server: AliyunOSS
Date: Thu, 11 Aug 2016 01:44:54 GMT
Content-Type: application/xml
Content-Length: 322
Connection: keep-alive
x-oss-request-id: 57ABD896CCB80C366955187E
x-oss-server-time: 0
<?  xml version="1.0" encoding="UTF-8"? >
<Error> 
<Code>NotImplemented</Code>
<Message>A header you provided implies functionality that is not implemented.</Message> 
<RequestId>57ABD896CCB80C366955187E</RequestId>
<HostId>bucketname.oss-cn-shanghai.aliyuncs.com</HostId>
<Header>If-Modified-Since</Header>
</Error>