commit c41c285ce9b50f42340597e2797ecbbc624bf831 Author: Godopu Date: Thu Feb 26 14:37:20 2026 +0900 docs: add initial README.md file. diff --git a/README.md b/README.md new file mode 100644 index 0000000..49f29fd --- /dev/null +++ b/README.md @@ -0,0 +1,53 @@ +# 프로젝트 개요 +- fastapi를 이용한 파일 업로드/다운로드 프로그램 작성 + +# 기능 +- **파일 업로드**: 이미지, 비디오, 기타 파일을 구분하여 서버에 저장 + - 이미지 파일은 `assets/images/`에 저장 + - 비디오 파일은 `assets/videos/`에 저장 + - 기타 파일은 `assets/files/`에 저장 +- **메타데이터 관리**: 업로드된 파일의 정보를 `assets/metadata.json`에 기록 +- **파일 다운로드**: 저장된 이름을 통해 파일 다운로드 지원 +- **API 구현**: fastapi를 통해 파일 업로드 및 다운로드를 위한 api 구현 +- **API 정의**: + - 파일 업로드: /api/files/upload + - 파일 다운로드: /api/files/download + - static (웹 (html, css, javascript) 서빙) : /web +- **웹 인터페이스**: `/web` 경로를 통해 접속 가능한 간단한 HTML 프론트엔드 제공 + +## 설치 및 실행 + +### 1. 가상환경 설정 +`venv`를 이용하여 `.venv` 디렉터리에 개발을 위한 가상환경을 설정하고, 활성화 합니다. +```bash +python -m venv .venv +source .venv/bin/activate +``` + +### 2. 의존성 설치 +```bash +pip install fastapi uvicorn python-multipart +``` + +### 3. 서비스 실행 +```bash +python main.py +``` +또는 +```bash +uvicorn main:app --reload +``` + +### 4. 접속 +- **Web UI**: `http://localhost:{port}/web` +- **API Docs**: `http://localhost:{port}/docs` +- port는 "8000"번 사용 + +## 디렉토리 구조 +- `main.py`: FastAPI 애플리케이션 및 API 로직 +- `assets/`: 업로드된 파일 및 메타데이터 저장소 + - `assets/images/`: 이미지 파일 저장소 + - `assets/videos/`: 비디오 파일 저장소 + - `assets/files/`: 기타 파일 저장소 + - `assets/metadata.json`: 메타데이터 저장소 +- `static/`: 프론트엔드 자산 (index.html)