미디어 업로드와 다운로드
서명된 입력 업로드와 짧게 유효한 결과 URL.
공개 HTTPS 이미지·영상·오디오 URL은 모델이 지원하는 필드에 그대로 넣을 수 있습니다. 로컬 파일에만 아래 업로드와 commit 절차가 필요합니다. 준비된 output.assets[].url을 바로 내려받으세요. API 키는 보내지 않습니다. expiresAt은 보통 20분 뒤이며 결과 보관 기간인 14일을 넘지 않습니다. 만료되면 다시 조회하세요. download-url은 선택 사항입니다.
POST /api/v1/common/upload-url
PUT <uploadUrl>
POST /api/v1/files/{fileId}/commit
GET <output.assets[].url>SDK로 Base64 업로드
SDK의 client.uploadBase64는 Data URI 또는 contentType을 지정한 Base64 문자열을 받아 기존 업로드 및 commit 절차를 실행합니다. 반환된 spicy:// URI를 input에 넣으세요. 이미지는 10 MiB, 오디오·영상은 100 MiB까지이며 모델별로 더 낮은 제한이 있으면 그 제한도 적용됩니다. Base64를 모델 입력 필드에 직접 보내는 방식은 아닙니다.
입력 업로드
POST /api/v1/common/upload-url에서 fileId와 uploadUrl을 받아 지정된 Content-Type으로 파일을 PUT합니다. 다음으로 POST /api/v1/files/{fileId}/commit을 호출하고, 응답으로 받은 spicy:// URI만 모델 input 필드에 넣으세요. uploadUrl이나 임시 객체 경로는 input에 넣지 마세요.
서명과 같은 Content-Type을 사용하고 클라이언트에서도 형식과 크기를 확인하세요. 입력 URI는 계정에 귀속되므로 다른 계정에서 사용할 수 없습니다.
결과 다운로드
준비된 output.assets[].url을 바로 내려받으세요. API 키는 보내지 않습니다. expiresAt은 보통 20분 뒤이며 결과 보관 기간인 14일을 넘지 않습니다. 만료되면 다시 조회하세요. download-url은 선택 사항입니다.
전체 필드 정의는 OpenAPI 3.1 사양을 확인하세요.
관련 문서
이미지는 10 MiB, 오디오와 동영상은 100 MiB까지입니다. Schema의 max_size_mb가 더 작으면 이를 적용하고 티켓의 maxBytes를 최종 상한으로 사용하세요. 오디오와 동영상은 최대 600초입니다. commit은 실제 형식을 확인하며 durationSeconds(십진수 문자열), width, height를 반환할 수 있습니다. 성공한 commit이 반환한 spicy:// URI만 사용하며 유효기간은 1일입니다.
image/jpeg · image/png · image/webp · image/gif · video/mp4 · video/webm · audio/mpeg · audio/wav

