ユーザーが 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 は、DeleteObjects、CompleteMultipartUpload、PutBucketLogging、 PutBucketWebsite、PutBucketLifecycle、PutBucketReferer、PutBucketCORS は除きます。
|
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 には、normal、appendable、および 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 です。 上限を調整するにはチケットを起票し、サポートセンターへお問い合わせください。 |
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
に設定する必要があります。アクセスするリソースが /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>