프로젝트 개요
- 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 디렉터리에 개발을 위한 가상환경을 설정하고, 활성화 합니다.
python -m venv .venv
source .venv/bin/activate
2. 의존성 설치
pip install fastapi uvicorn python-multipart
3. 서비스 실행
python main.py
또는
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)
Description
Languages
HTML
64.7%
Python
35.3%