쿼리 결과 다운로드 토큰 생성
쿼리 결과 다운로드를 위한 토큰을 발급받은 후, 파일 다운로드 API를 사용해 쿼리 결과를 다운로드할 수 있습니다. 발급된 토큰은 1회만 사용 가능하며, 30분 후 만료됩니다. 대상 쿼리는 커서 생성 API로 실행한 쿼리여야 합니다.
필요 권한
사용자 이상의 계정으로 이용할 수 있습니다.
HTTP 요청
POST /api/sonar/cursors/:id/download-token
cURL 예시
curl -H "Authorization: Bearer <API_KEY>" \
-d "filename=my_query.csv" \
-X POST "https://HOSTNAME/api/sonar/cursors/1234/download-token"
요청 매개변수
경로 매개변수
| 키 | 타입 | 설명 | 비고 |
|---|---|---|---|
| id | 32비트 정수 | 로그프레소 쿼리 ID | 커서 생성 결과 ID |
요청 본문 매개변수
| 키 | 필수 | 타입 | 설명 | 비고 |
|---|---|---|---|---|
| filename | O | 문자열 | 파일 이름 | 확장자 포함해서 입력. / 및 널 문자 사용 불가, 최대 255자 |
| filetype | X | 문자열 | 파일 형식 | csv, json, xml, html, docx, pdf, hwpx 중 하나. 기본값: csv |
| charset | X | 문자열 | 문자 인코딩 | utf-8, utf-16, ms949(EUC-KR, 확장완성형) 중 하나. 기본값: utf-8 |
| fields | X | 문자열 | 출력 필드 목록 | 쉼표(,)로 구분. 미입력 시 전체 필드 |
| offset | X | 64비트 정수 | 건너뛸 갯수 | 최소 0. 기본값: 0 |
| limit | X | 64비트 정수 | 최대 갯수 | 최소 0. 미지정 시 전체 출력 |
| split_count | X | 32비트 정수 | 파일당 행 개수 | csv 형식에서만 지원 |
split_count를 사용하면 여러 개의 CSV 파일이 zip 압축 파일로 묶여서 다운로드됩니다. 이 경우filename매개변수 값은 확장자로zip을 사용해야 합니다. (예시:filename=result.zip)
지원하는 파일 형식 및 문자 인코딩을 표로 정리하면 다음과 같습니다.
| 파일 형식 | 문자 인코딩 |
|---|---|
| csv | utf-8, utf-16, ms949 |
| docx | utf-8 |
| html | utf-8 |
| hwpx | utf-8 |
| json | utf-8, utf-16, ms949 |
| utf-8 | |
| xml | utf-8 |
정상 응답
HTTP 상태 코드 200 응답
{ "token": "4ba40c97-b31b-450f-8af8-ceb1b94f5514" }
- token (문자열): 발급된 다운로드 토큰 GUID
오류 응답
쿼리 id가 정수가 아닌 경우
HTTP 상태 코드 400 응답
{
"error_code": "illegal-argument",
"error_msg": "id should be integer type."
}
filename 입력 값이 없거나 유효하지 않은 경우
HTTP 상태 코드 400 응답
{
"error_code": "illegal-argument",
"error_msg": "invalid file name: null"
}
offset, limit 값이 64비트 정수가 아닌 경우
HTTP 상태 코드 400 응답
{
"error_code": "illegal-argument",
"error_msg": "offset should be long type."
}
offset, limit 값이 음수인 경우
HTTP 상태 코드 400 응답
{
"error_code": "illegal-argument",
"error_msg": "offset should be non-negative integer."
}
split_count 값이 32비트 정수가 아닌 경우
HTTP 상태 코드 400 응답
{
"error_code": "illegal-argument",
"error_msg": "split_count should be integer type."
}
split_count를 csv 이외의 형식과 함께 사용한 경우
HTTP 상태 코드 400 응답
{
"error_code": "illegal-argument",
"error_msg": "'file split' supports only the csv file type."
}
charset에 지원하지 않는 문자 인코딩을 입력한 경우
HTTP 상태 코드 400 응답
{
"error_code": "illegal-argument",
"error_msg": "unsupported charset for pdf format: utf-16"
}
지정한 쿼리를 찾을 수 없는 경우
HTTP 상태 코드 500 응답
{
"error_code": "generic-error",
"error_msg": "query not found: 12"
}
filetype에 지원하지 않는 파일 형식을 입력한 경우
HTTP 상태 코드 500 응답
{
"error_code": "generic-error",
"error_msg": "invalid file type: txt"
}