Files

1.8 KiB

프로젝트 개요

  • 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)