SaaS API제출 링크 (매직 링크)
제출 링크 (매직 링크) API
로그인 없이 토큰 링크로 1·2차 검수 제출물과 최종제출물을 업로드하는 API
제출 링크 (매직 링크) API
크리에이터가 파일 용량/네트워크 이슈로 글로우비 앱 내에서 제출하지 못할 때, 로그인 없이 토큰 링크만으로 제출물을 올릴 수 있게 하는 기능입니다.
두 축으로 문제를 해결합니다
- 접근(인증): 로그인 대신 추측 불가능한 토큰으로 신청을 식별 → 로그인 없이 접근
- 전송(업로드): 파일은 브라우저에서 GCS로 직접 업로드(Resumable Signed URL) → 서버를 거치지 않아 대용량/불안정 네트워크 문제 해결
대상 제출물
하나의 토큰으로 해당 신청의 1차·2차 검수 제출물과 최종제출물 전부를 제출할 수 있습니다.
| 제출 종류 | 완료 콜백 | 재사용 로직 |
|---|---|---|
| 1·2차 검수 | POST /submit-link/{token}/complete/review | 기존 일괄 제출(batchSubmit) |
| 최종제출물 | POST /submit-link/{token}/complete/final | 기존 최종 제출/재제출 |
토큰 정책
| 항목 | 정책 |
|---|---|
| 만료 | 제출 성공 시 즉시 만료(1회용) — 검수 상태와 어긋남 방지 |
| 미사용 백스톱 | 한 번도 쓰지 않은 링크는 만료일(기본 7일) 경과 시 자동 만료 |
| 만료일 지정 | 관리자 발급 시 expiryDays로 직접 지정 가능 (1 ~ 365일) |
| 재발급 | 재제출/2차/최종마다 새 링크 발급 필요 |
| 무효화 | active 플래그로 수동 무효화 가능 |
1회용입니다. 제출이 성공하면 토큰이 소진되어 더 이상 사용할 수 없습니다. 재제출, 2차 제출, 최종 제출은 각각 새 링크를 발급해야 합니다.
전체 흐름
1. (관리자/크리에이터) 링크 발급 → https://app.glowb.io/submit/{token}
2. 크리에이터가 링크 진입 (로그인 X)
→ GET /submit-link/{token} (컨텍스트 조회)
3. 파일 업로드 준비
→ POST /submit-link/{token}/signed-url (GCS Resumable Signed URL 발급)
→ 브라우저가 GCS로 직접 업로드 (끊겨도 재개)
4. 제출 완료 콜백
→ POST /submit-link/{token}/complete/review (1·2차)
→ POST /submit-link/{token}/complete/final (최종)
→ 기존 제출 로직 재사용: 상태변경 · 트랜스코딩 · 알림엔드포인트 목록
링크 발급 (인증 필요)
| 메서드 | 경로 | 설명 | 인증 |
|---|---|---|---|
POST | /admin/submission-link/applications/{applicationId} | 관리자 링크 발급 (만료일 지정 가능) | 필요 (관리자) |
POST | /ai/influence/submission-link/applications/{applicationId} | 크리에이터 본인 링크 발급 | 필요 (크리에이터) |
무인증 제출 (토큰 인증)
| 메서드 | 경로 | 설명 | 인증 |
|---|---|---|---|
GET | /submit-link/{token} | 링크 컨텍스트 조회 | 토큰 |
POST | /submit-link/{token}/signed-url | GCS Resumable Signed URL 발급 | 토큰 |
POST | /submit-link/{token}/complete/review | 1·2차 검수 제출 완료 콜백 | 토큰 |
POST | /submit-link/{token}/complete/final | 최종제출물 완료 콜백 | 토큰 |
GCS Signed URL은 Resumable(재개 가능) 모드입니다.
브라우저는 발급받은 URL로 POST(헤더 x-goog-resumable: start)하여 세션 URI를 받고,
그 URI로 파일 바이트를 PUT 합니다. 업로드 중 네트워크가 끊겨도 끊긴 지점부터 재개할 수 있습니다.