최신 업데이트:2025-08-18 15:31:59
Append Upload 인터페이스는 사용자가 오브젝트(객체)에 콘텐츠를 직접 추가(append)할 수 있도록 하며, 각 append 업로드 데이터는 즉시 읽을 수 있습니다. 이러한 방식으로 조작되는 오브젝트를 Appendable 오브젝트라고 합니다.
토큰 계산과 업로드 정책 정의는 일반 업로드 인터페이스와 동일합니다. 각 append 동작은 일반 업로드 정책에 따라 수행됩니다.
요청 형식
POST /append/<position>
Host: <UploadDomain>
Content-Length:<appendSize>
Content-Type: multipart/form-data; boundary=<boundary>
--<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="원래파일명"
Content-Type: application/octet-stream
<fileBinaryData>
--<boundary>--
요청 메시지 파라미터
| 파라미터명 | 설명 | 필수 여부 |
|---|---|---|
| append | append 업로드 방식을 나타냄 | 예 |
| position | 데이터를 추가할 위치 및 Appendable 오브젝트의 크기 | 예 |
요청 헤더
| 헤더명 | 필수 여부 | 설명 |
|---|---|---|
| Host | 예 | Upload domain name, 콘솔의 버킷 개요(Overview) 화면에서 확인 가능 |
| Content-Length | 예 | append 데이터의 길이 |
| Content-Type | 예 | 표준 MIME 타입. 타입: string. 고정 값: multipart/form-data. |
폼 설명
| 파라미터 | 필수 여부 | 설명 |
|---|---|---|
| <token> | 예 | Upload Credential |
| <x:VariableName> | 아니오 | 사용자 정의 변수명 |
| <key> | 아니오 | Custom filename |
| <mimeType> | 아니오 | 사용자 정의 파일 MIME-Type |
| <deadline> | 아니오 | 파일 보관 일수입니다. 설정한 기간을 초과하면 파일이 자동으로 삭제됩니다. 단위: 일. 예: 1, 2, 3… 참고: 0은 즉시 삭제를 의미하며, 파일 업로드 시 권장하지 않습니다. |
| <file> | 예 | 실제 파일 |
| <fileBinaryData> | 예 | 파일의 바이너리 스트림 |
응답 형식
HTTP/1.1 status_code
x-wcs-next-append-position:object size
x-wcs-object-type:Appendable
Server: WS-web-server
<ResponseContent>
응답 헤더
| 헤더명 | 필수 여부 | 설명 |
|---|---|---|
| x-wcs-next-append-position | 예 | 다음 append의 위치를 나타냄 문자열(String) |
| x-wcs-object-type | 예 | 오브젝트 타입을 나타냄. appendfromfile 작업에는 Appendable, 일반 오브젝트의 경우 Normal 타입: 문자열(String) |
응답 본문
요청이 성공하면 *<ResponseContent>*는 다음과 같이 URL-Safe Base64 Encoding된 문자열을 반환합니다:
hash=<filehash>
| 필드명 | 필수 여부 | 설명 |
|---|---|---|
| <filehash> | 예 | 파일 해시 값 |
참고: 업로드 시 returnBody가 정의되어 있다면, returnBody 내용이 추가로 반환됩니다. 예시: name=
요청 실패 시, *<ResponseContent>*는 다음과 같은 Json 문자열로 반환됩니다:
{
"code": "<code string>",
"message": "<message string>"
}
| 필드명 | 필수 여부 | 설명 |
|---|---|---|
| code | 예 | HTTP 요청 응답 코드, 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://uploaddomain.com/append/0