최신 업데이트:2025-08-18 15:46:38
WOS 서비스에 요청을 보낼 때 오류가 발생하면, 응답에는 문제 위치와 원인 파악에 도움이 되는 상세한 오류 코드와 메시지가 포함됩니다.
| 상황 | HTTP 상태코드 | 오류 코드 | 메시지 |
|---|---|---|---|
| Host 헤더 값이 잘못된 경우 | 403 Forbidden | InvalidURI | Couldn’t parse the specified URI. |
| 인증 헤더가 누락된 경우 | 403 Forbidden | AccessDenied | Access Denied |
| 서명에 유효한 날짜가 포함되어 있지만 헤더에 Date가 없거나 Date가 잘못된 경우 | 403 Forbidden | AccessDenied | Authentication requires a valid Date or x-wos-date header |
| 서명 불일치 예시: 1. 서명에는 날짜가 없거나 잘못됨, 헤더에는 있음 2. 서명·헤더 모두 날짜 없음 또는 잘못된 값 3. 서명에 날짜 포함, 헤더엔 x-amz-date 사용 4. content-type이 헤더 및 서명에서 다름 |
403 Forbidden | SignatureDoesNotMatch | The request signature we calculated does not match the signature you provided. Check your key and signing method. |
| Credential 날짜 오류 | 400 Bad Request | InvalidArgument | Invalid credential date. Date is not the same as x-wos-date. |
| 잘못된 regionName 지정 | 400 Bad Request | AuthorizationHeaderMalformed | The authorization header is malformed; the region ‘ap-northeast-1’ is wrong; expecting ‘ap-south-1’ |
| 인증의 Access Key(AK) 누락 | 400 Bad Request | AuthorizationHeaderMalformed | The authorization header is malformed; a non-empty Access Key (AKID) must be provided in the credential. |
| Access Key(AK)가 잘못됨 또는 존재하지 않음 | 403 Forbidden | InvalidAccessKeyId | The Access Key Id you provided does not exist in our records. |
| 서명 누락 | 400 Bad Request | InvalidArgument | Authorization header is invalid. Expected AccessKeyId:signature |
| 허용되지 않는 서명 알고리즘(대문자 WOS-HMAC-SHA256만 지원) | 400 Bad Request | InvalidArgument | Only AWS4-HMAC-SHA256 is supported |
| 인증 헤더 미존재 또는 잘못됨 | 403 Forbidden | AccessDenied | Access Denied |
| AK/SK 불일치나 서브계정 권한 없음 | 403 Forbidden | AccessDenied | Access Denied |
| 자격 증명 만료 | 400 Bad Request | ExpiredToken | The provided token has expired. |
| 서비스 오더 미개통 | 403 Forbidden | AccessDenied | Standard storage service in CHINA not enabled |
| 버킷이 중지/무효/삭제 상태임 | 409 Conflict | InvalidBucketState | The request is not valid with the current state of the bucket. |
| 계정 비활성화 | 403 Forbidden | AccountProblem | There is a problem with your account that prevents the operation from completing successfully. |
| Date 또는 x-wos-date 헤더가 잘못된 형식 | 400 Bad Request | InvalidArgument | XXX must be formatted via ISO8601 Long format |
| URI가 유효하지 않음 | 400 Bad Request | InvalidURI | Couldn’t parse the specified URI. |
| XML이 올바르지 않음 | 400 Bad Request | MalformedXML | The XML you provided was not well-formed or did not validate against our published schema. |
| 요청 본문 누락 | 400 Bad Request | MissingRequestBodyError | Request body is empty. |
| Content-MD5 불일치 | 400 Bad Request | BadDigest | The Content-MD5 you specified did not match what we received. |
| Content-MD5가 올바르지 않음 | 400 Bad Request | InvalidDigest | The Content-MD5 you specified is not valid. |
| 버킷이 존재하지 않음 | 404 Not Found | NoSuchBucket | The specified bucket does not exist. |
| 오브젝트가 존재하지 않음 | 404 Not Found | NoSuchKey | The specified key does not exist. |
| 서버 내부 오류 | 500 Internal Error | InternalError | We encountered an internal error. Please try again. |
| 요청 타임아웃 | 400 Bad Request | RequestTimeout | Your socket connection to the server was not read from or written to within the timeout period. |
| 클라이언트와 서버 시간차가 15분 이상 | 403 Forbidden | RequestTimeTooSkewed | The difference between the request time and the server’s time is too large. |
| max-uploads 파라미터가 음수 | 400 Bad Request | InvalidArgument | Argument maxUploads must be an integer between 0 and 1000 |
| max-uploads가 정수가 아님 | 400 Bad Request | InvalidArgument | Provided max-uploads not an integer or within integer range |
| max-uploads 값이 1000보다 큼 | 400 Bad Request | InvalidArgument | Argument maxUploads must be an integer between 0 and 1000 |
| max-parts 값이 1~1000 사이 정수가 아님 | 400 Bad Request | InvalidArgument | Argument maxParts must be an integer between 0 and 1000 / Provided maxParts not an integer or within integer range |
| Invalid Content-MD5 | 400 Bad Request | InvalidDigest | The Content-MD5 you specified is not valid. |
| Content-MD5와 실제 파일 MD5 불일치 | 400 Bad Request | BadDigest | The Content-MD5 you specified did not match what we received. |
| POST 요청에 파일 내용 누락 | 400 Bad Request | InvalidArgument | POST requires exactly one file upload per request. |
| Key(오브젝트 이름) 누락 | 400 Bad Request | InvalidArgument | Bucket POST must contain a field named ‘key’. If it is specified, please check the order of the fields. |
| POST Content-Type이 multipart/form-data가 아님 | 400 Bad Request | InvalidArgument | Content-Type of Bucket Post must be multipart/form-data |
| 파일 크기가 5GB 초과 | 400 Bad Request | MaxPostPreDataLengthExceededError | Your POST request fields preceding the upload file were too large. |
| 멀티파트 업로드의 uploadId가 존재하지 않음 | 404 Not Found | NoSuchUpload | The specified upload does not exist. The upload ID may be invalid, or the upload may have been aborted or completed. |
| CompleteMultipartUpload에서 ETag가 잘못됨 | 400 Bad Request | InvalidPart | One or more of the specified parts could not be found. The part may not have been uploaded, or the specified entity tag may not match the part’s entity tag. |
| 멀티파트 결합 시 파트 정보 누락 | 400 Bad Request | InvalidRequest | You must specify at least one part. |
| GetBucket의 max-keys는 0~2,147,483,647 사이 정수여야 함 | 400 Bad Request | InvalidArgument | Argument maxKeys must be an integer between 0 and 2147483647. |
| GetBucket의 max-keys는 양의 정수여야 함 | 400 Bad Request | InvalidArgument | Provided max-keys not an integer or within integer range. |
| format 파라미터가 잘못되었거나 누락됨 | 400 | InvalidArgument | The format param submitted is incorrect. |
| format 외 파라미터명이 잘못됨 | 400 | InvalidArgument | The xxx param submitted is incorrect. |
| format 외 파라미터 값이 잘못됨 | 400 | InvalidArgument | Property xxx invalid, the value is abc not match abcde. |
| 압축 풀기 등, 덮어쓰기가 아닌 작업에서 대상 파일이 이미 존재 | 409 Conflict | InvalidArgument | Target file already exists. |
오류 발생 시 응답 헤더에는 아래와 같은 항목이 포함됩니다:
Content-Type: application/xml
해당 3xx, 4xx, 5xx HTTP 상태코드
오류 응답 바디
응답 바디에는 상세한 오류 정보가 포함됩니다. 아래는 REST 오류 응답의 일반적인 구조 예시입니다.
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>NoSuchKey</Code>
<Message>The resource you requested does not exist</Message>
<Resource>/example-bucket/object</Resource>
<RequestId>001B21A61C6C0000013402C4616D5285</RequestId>
</Error>