50 lines
2.9 KiB
Markdown
50 lines
2.9 KiB
Markdown
---
|
|
type: page-backend
|
|
status: stable
|
|
page_id: B03_FileInput
|
|
related_pages: ["[[B03_FileInput/B03_frontend]]", "[[B03_FileInput/B03_api]]", "[[B03_FileInput/B03_db]]", "[[B03_FileInput/B03_dependencies]]"]
|
|
last_updated: 2026-07-12
|
|
source: 상위 프로젝트 B03_FileInput 실 코드 직접 확인 (2026-07-12)
|
|
---
|
|
|
|
# B03_FileInput — Backend
|
|
|
|
## 입력 검증·파일 처리
|
|
| 항목 | 위치 | 역할 |
|
|
|---|---|---|
|
|
| `FileUploadDescriptor` | `B03_FileInput_Schema.py:11` | 경로 이탈·확장자·크기 검증 |
|
|
| `resolve_upload_destination()` | `B03_FileInput_Engine.py:15` | 프로젝트 WF0 저장 목적지 결정 |
|
|
| `save_upload_stream()` | `B03_FileInput_Engine.py:31` | 일반 업로드 스트림 저장 |
|
|
| `resolve_chunk_session_dir()` | `B03_FileInput_Engine.py:64` | 임시 청크 디렉터리 결정 |
|
|
| `save_upload_chunk()` / `merge_upload_chunks()` | `B03_FileInput_Engine.py:77,124` | 청크 저장·순서 병합 |
|
|
| `remove_chunk_session()` | `B03_FileInput_Engine.py:173` | 청크 임시 디렉터리 정리 |
|
|
|
|
## 메타데이터 분석
|
|
| 항목 | 위치 | 역할 |
|
|
|---|---|---|
|
|
| `analyze_las_metadata()` | `B03_FileInput_Engine_Analyze.py:13` | LAS 포인트 수·범위·밀도 분석 |
|
|
| `analyze_prj_metadata()` | `B03_FileInput_Engine_Analyze.py:62` | PRJ CRS 분석 |
|
|
| `analyze_tfw_metadata()` | `B03_FileInput_Engine_Analyze.py:95` | TFW 변환계수 분석 |
|
|
| `analyze_tif_metadata()` | `B03_FileInput_Engine_Analyze.py:119` | TIF 래스터·CRS·범위 분석 |
|
|
| `analyze_input_metadata()` | `B03_FileInput_Engine_Analyze.py:146` | 확장자별 분석 라우팅 |
|
|
|
|
## 저장소
|
|
| 항목 | 위치 | 역할 |
|
|
|---|---|---|
|
|
| `create_input_file()` | `B03_FileInput_Repository.py:11` | `input_files` 원본 메타데이터 등록 |
|
|
| `get_project_storage_relative_path()` | `B03_FileInput_Repository.py:64` | 프로젝트 상대 저장경로 조회 |
|
|
| `create_upload_session()` / `get_upload_session()` | `B03_FileInput_Repository.py:89,135` | 청크 세션 생성·조회 |
|
|
| `upsert_upload_chunk()` / `list_completed_chunk_indexes()` | `B03_FileInput_Repository.py:165,216` | 청크 기록·완료 인덱스 조회 |
|
|
| `mark_upload_session_completed()` / `mark_upload_session_failed()` | `B03_FileInput_Repository.py:236,253` | 세션 성공·실패 상태 기록 |
|
|
|
|
## workflow·알림
|
|
| 항목 | 위치 | 역할 |
|
|
|---|---|---|
|
|
| `trigger_wf1_analysis_and_email()` | `B03_FileInput_Router.py:147` | WF1 분석 실행과 완료·실패 이메일 연결 |
|
|
| `start_stage()` | `B03_FileInput_Router.py:175` | WF1 시작, stage 1 IN_PROGRESS 전이 |
|
|
| `complete_stage()` | `B03_FileInput_Router.py:224,347,570` | WF0/WF1 완료 전이 |
|
|
| `fail_stage()` | `B03_FileInput_Router.py:256` | WF1 실패 전이 |
|
|
| `get_project_workflow_state()` | `B03_FileInput_Router.py:668` | 단일 프로젝트 workflow 상태 반환 |
|
|
|
|
workflow 정의: [[../../concepts/workflow_state]], 저장경로: [[../../concepts/storage_paths]].
|