쿼리 결과 다운로드 토큰 생성
쿼리 결과 다운로드를 위한 토큰을 발급받은 후, 파일 다운로드 API를 사용해 쿼리 결과를 다운로드할 수 있습니다. 발급된 토큰은 1회만 사용 가능하며, 30분 후 만료됩니다.
필요 권한
사용자 이상의 계정으로 이용할 수 있습니다.
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 | O | 32비트 정수 | 로그프레소 쿼리 ID | 커서 생성 결과 ID |
| charset | X | 문자열 | 문자 인코딩 | utf-8, utf-16, ms949(EUC-KR, 확장완성형) 중 하나. 기본값: utf-8 |
| filename | O | 문자열 | 파일 이름 | 확장자 포함해서 입력 |
| filetype | X | 문자열 | 파일 형식 | csv, json, xml, html, docx, pdf 중 하나. 기본값: csv |
| fields | X | 문자열 | 출력 필드 목록 | 쉼표(,)로 구분. 미입력 시 전체 필드 |
| limit | X | 64비트 정수 | 최대 갯수 | 기본값: 전체 출력 |
| offset | 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 |
| json | utf-8, utf-16, ms949 |
| utf-8 | |
| xml | utf-8 |
정상 응답
HTTP 상태 코드 200 응답
{ "token": "4ba40c97-b31b-450f-8af8-ceb1b94f5514" }
오류 응답
쿼리 id 입력 값이 없거나 숫자가 아닌 경우
HTTP 상태 코드 400 응답
{
"error_code": "illegal-argument",
"error_msg": "id should be integer type."
}
잘못된 쿼리 id를 입력한 경우
HTTP 상태 코드 400 응답
{
"error_code": "generic-error",
"error_msg": "query-not-found: 12"
}
filename 입력 값이 없는 경우
HTTP 상태 코드 400 응답
{
"error_code": "illegal-argument",
"error_msg": "filename should be not null."
}
filetype에 지원하지 않는 파일 형식을 입력한 경우
HTTP 상태 코드 400 응답
{
"error_code": "illegal-state",
"error_msg": "invalid file type: txt"
}
charset에 지원하지 않는 문자 인코딩을 입력한 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "Unsupported charset for pdf format: utf-16"
}
offset, limit 값이 64비트 정수가 아닌 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "offset should be long type."
}
offset, limit 값이 음수인 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "offset should be non-negative integer."
}
{
"error_code": "invalid-argument",
"error_msg": "limit should be non-negative integer."
}
split_count 값이 32비트 정수가 아닌 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "split_count should be integer type."
}