최신 업데이트:2025-08-18 15:31:55
일반 업로드 인터페이스는 오브젝트 스토리지 플랫폼에서 지정된 버킷에 리소스 파일을 업로드할 수 있는 기능을 제공합니다. 파일 크기가 500MB를 초과하는 경우 멀티파트 업로드를 반드시 사용해야 합니다. 일반 업로드는 HTML 폼 업로드도 지원합니다.
참고:
- 멀티파트 업로드에 권장되는 파일 크기는 환경에 따라 다를 수 있습니다. 상세 내용은 관련 SDK의 권장 값을 참고하세요.
- 오브젝트 스토리지에서 제공하는 업로드 도메인명은 일반 도메인명입니다.
업로드 요청은 HTTP multipart/form-data 형식으로 제출됩니다. 예시는 다음과 같습니다.
POST /file/upload HTTP/1.1
Host: <UploadDomain>
Accept: */*
Content-Type: multipart/form-data; boundary=<boundary>
Content-Length: <multipartContentLength>
--<boundary>
Content-Disposition: form-data; name="token"
<uploadToken>
--<boundary>
Content-Disposition: form-data; name="<x:VariableName>"
<x:VariableValue>
--<boundary>
Content-Disposition: form-data; name="key"
<key>
--<boundary>
Content-Disposition: form-data; name="mimeType"
<mimeType>
--<boundary>
Content-Disposition: form-data; name="deadline"
<deadline>
--<boundary>
Content-Disposition: form-data; name="file"; filename="original file name"
Content-Type: application/octet-stream
<fileBinaryData>
--<boundary>--
| 헤더명 | 필수 | 설명 |
|---|---|---|
| Host | 예 | Upload Domain Name. 콘솔 Overview 화면에서 확인 가능 |
| Accept | 예 | 수락 타입. 고정값 */* 입니다. |
| Content-Type | 예 | 콘텐츠 타입, 고정값 multipart/form-data. <boundary>는 멀티파트 구분자입니다. |
| Content-Length | 예 | 콘텐츠 전체 길이 (단위: 바이트). |
| 파라미터 | 필수 | 설명 |
|---|---|---|
| <token> | 예 | Upload Credential |
| <x:VariableName> | 아니오 | 커스텀 변수의 이름 |
| <x:VariableValue> | 아니오 | 커스텀 변수의 값 |
| <key> | 아니오 | Custom File Name |
| <mimeType> | 아니오 | 커스텀 파일의 MIME-Type |
| <deadline> | 아니오 | 파일 저장 기간. 지정한 일(day) 수를 초과한 파일은 자동 삭제됩니다. 예: 1, 2, 3… 참고: 0은 가능한 한 빨리 삭제됨을 의미합니다. 업로드 시 0은 권장하지 않습니다. |
| <file> | 예 | 파일 정보. 파일명이 지정되지 않은 경우, fileName 속성이 파일명으로 사용됩니다. |
| <fileBinaryData> | 예 | 파일의 바이너리 스트림 |
HTTP/1.1 200 OK
Server: WS-web-server
<ResponseContent>
요청이 성공하면 <ResponseContent>에는 아래 내용이 URL-Safe Base64 Encoded 문자로 반환됩니다.
hash=<filehash>
핵심 필드 설명:
| 필드명 | 필수 | 설명 |
|---|---|---|
| <filehash> | 예 | 파일의 해시 값 |
참고: 업로드 시 returnBody가 정의되어 있을 경우,
returnBody의 내용이 응답 데이터에 추가됩니다. 예:name=<filename>&size=<filesize>hash=<filehash>등
요청이 실패할 경우 아래와 같은 JSON 형식의 문자열이 반환됩니다.
{
"code": "<code string>",
"message": "<message string>"
}
오류 필드 설명:
| 필드명 | 필수 | 설명 |
|---|---|---|
| code | 예 | HTTP Response Status Code |
| message | 예 | 안내 메시지 |
curl -v -i -X POST -H "Expect:" -F file=@D:/8.png -F key=m.png -F token="6a69ab4062cb03059e4c13a0f5e662523effad49:ZGE1MWY1YzA4ZDgyMjVlM2Q3MmE2YjZkZDI3MmY1ZmMxNjk2YTFjOA==:eyJzY29wZSI6InRlc3QiLCJkZWFkbGluZSI6IjE0NzIxNzY2MzQwMDAiLCJvdmVyd3JpdGUiOjAsImZzaXplTGltaXQiOjAsImluc3RhbnQiOjAsInNlcGFyYXRlIjowfQ==" --url 'http://updomain.com/file/upload'