파일 업로드
OnSureLab
Step 5 레퍼런스/로고, Step 7 결과물 등 파일을 Naver Object Storage에 업로드합니다.
업로드 후 받은 URL을 draft에 넣어서 집행건 저장 API로 보냅니다.
POST
파일 업로드
엔드포인트
POST /api/onsurelab/executions/:id/filesContent-Type: multipart/form-data
요청 Body (FormData)
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
| file | File | 필수 | 업로드할 파일 |
| category | string | 필수 | reference / logo / brand_guide / evidence / deliverable |
| step | number | - | 어떤 스텝에서 올린 건지 (5, 7, 9 등) |
성공 응답 (201)
{
"success": true,
"data": {
"fileId": "file_abc123def4",
"url": "https://storage.example.com/bucket/exec_xxx/reference/image1.jpg",
"originalName": "디자인레퍼런스.jpg",
"size": 1048576,
"mimeType": "image/jpeg",
"category": "reference",
"step": 5,
"uploadedAt": "2025-01-15T10:00:00.000Z"
}
}사용 흐름:
- POST /files (파일 업로드) → url 받음
- PATCH /executions/:id (draft 안에 url 추가하여 저장)
GET
파일 목록 조회
엔드포인트
GET /api/onsurelab/executions/:id/files파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| category | string | - | 카테고리 필터 |
| step | number | - | 스텝 필터 |
성공 응답 (200)
{
"success": true,
"data": {
"files": [
{
"fileId": "file_abc123def4",
"url": "https://storage.example.com/...",
"originalName": "디자인레퍼런스.jpg",
"size": 1048576,
"mimeType": "image/jpeg",
"category": "reference",
"step": 5,
"uploadedAt": "2025-01-15T10:00:00.000Z"
}
]
}
}DELETE
파일 삭제
엔드포인트
DELETE /api/onsurelab/executions/:id/files/:fileId성공 응답 (200)
{
"success": true,
"message": "파일 삭제 성공"
}