SaaS API콘텐츠 가이드라인 API
POST /ai/guideline/{collabNo}/images
가이드라인 및 캠페인용 이미지 업로드
이미지 업로드
가이드라인 및 캠페인용 이미지를 업로드합니다.
| 항목 | 값 |
|---|---|
| 메서드 | POST |
| 경로 | /ai/guideline/{collabNo}/images |
| 인증 | 필요 (JWT Bearer Token) |
| Content-Type | multipart/form-data |
요청
POST /ai/guideline/123/images?type=detail HTTP/1.1
Host: api.glowb.com
Authorization: Bearer {access_token}
Content-Type: multipart/form-data; boundary=----FormBoundary
------FormBoundary
Content-Disposition: form-data; name="files"; filename="product1.jpg"
Content-Type: image/jpeg
(binary data)
------FormBoundary
Content-Disposition: form-data; name="files"; filename="product2.jpg"
Content-Type: image/jpeg
(binary data)
------FormBoundary--curl -X POST "https://api.glowb.com/ai/guideline/123/images?type=detail" \
-H "Authorization: Bearer {access_token}" \
-F "files=@product1.jpg" \
-F "files=@product2.jpg"const formData = new FormData();
formData.append('files', file1);
formData.append('files', file2);
const response = await fetch('/ai/guideline/123/images?type=detail', {
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`
},
body: formData
});
const result = await response.json();Path Parameters
Prop
Type
Query Parameters
Prop
Type
이미지 타입
| 타입 | 설명 | 저장 위치 | 허용 확장자 |
|---|---|---|---|
brand-logo | 브랜드 로고 | 캠페인 소유 기업 기준으로 저장 (관리자가 업로드해도 기업 폴더에 저장) | png, svg, ai, zip, jpeg, jpg, gif |
thumbnail | 썸네일 이미지 | 캠페인별 저장 | 제한 없음 |
detail | 상세 이미지 | 캠페인별 저장 (단일/복수 모두 가능) | 제한 없음 |
brand-logo 타입은 캠페인을 소유한 기업의 ID를 기준으로 저장됩니다. 관리자가 업로드하더라도 해당 기업의 폴더에 저장됩니다.
brand-logo 타입은 허용된 확장자만 업로드할 수 있습니다: png, svg, ai, zip, jpeg, jpg, gif
Request Parts
Prop
Type
응답
성공 응답 (200 OK)
{
"status": 200,
"code": null,
"message": "이미지 3개가 업로드되었습니다.",
"data": [
{
"fileUrl": "https://s3.../guideline/123/detail/1_product1.jpg",
"fileName": "product1.jpg",
"type": "detail",
"order": 1
},
{
"fileUrl": "https://s3.../guideline/123/detail/2_product2.jpg",
"fileName": "product2.jpg",
"type": "detail",
"order": 2
},
{
"fileUrl": "https://s3.../guideline/123/detail/3_product3.jpg",
"fileName": "product3.jpg",
"type": "detail",
"order": 3
}
]
}응답 필드 상세
응답은 업로드된 파일 정보 배열입니다.
Prop
Type
에러 응답
지원하지 않는 이미지 타입 (400)
{
"status": 400,
"code": "BAD_REQUEST",
"message": "지원하지 않는 이미지 타입입니다: unknown",
"data": null
}캠페인을 찾을 수 없음 (404)
{
"status": 404,
"code": "CAMPAIGN_NOT_FOUND",
"message": "존재하지 않는 캠페인입니다: 123",
"data": null
}파일명 없음 (400) - brand-logo 타입
{
"status": 400,
"code": "FILE_002",
"message": "파일명이 없습니다.",
"data": null
}지원하지 않는 파일 확장자 (400) - brand-logo 타입
{
"status": 400,
"code": "FILE_001",
"message": "지원하지 않는 로고 파일 형식입니다: webp. 허용 형식: png, svg, ai, zip, jpeg, jpg, gif",
"data": null
}이미지 권장 사이즈
| 타입 | 권장 사이즈 |
|---|---|
brand-logo | 자유 |
thumbnail | 400 x 400 px |
detail | 400 x 605 px |
사용 예시
브랜드 로고 업로드
curl -X POST "https://api.glowb.io/ai/guideline/123/images?type=brand-logo" \
-H "Authorization: Bearer {token}" \
-F "files=@brand-logo.png"상세 이미지 복수 업로드
curl -X POST "https://api.glowb.io/ai/guideline/123/images?type=detail" \
-H "Authorization: Bearer {token}" \
-F "files=@product1.jpg" \
-F "files=@product2.jpg" \
-F "files=@product3.jpg"