[python] FastAPI를 사용한 파일 업로드 및 다운로드 기능 구현

FastAPI는 빠르고 간편한 웹 API를 구축하기 위한 파이썬 프레임워크로, 파일 업로드 및 다운로드와 같은 기능도 손쉽게 구현할 수 있습니다. 이번 글에서는 FastAPI를 사용하여 파일 업로드 및 다운로드 기능을 구현하는 방법을 알아보겠습니다.

필수 패키지 설치

먼저, FastAPI와 파일 업로드 및 다운로드를 지원하기 위한 추가적인 패키지를 설치해야 합니다.

pip install fastapi
pip install uvicorn

이제 FastAPI와 파일 처리를 위한 라이브러리를 설치했으니, 간단한 파일 업로드 및 다운로드 API를 만들어 보겠습니다.

파일 업로드 API 구현

다음은 FastAPI를 사용하여 파일을 업로드하는 API의 예시입니다. 이 코드를 main.py 파일에 작성해 주세요.

from fastapi import FastAPI, File, UploadFile
from fastapi.responses import FileResponse
import shutil
import os

app = FastAPI()

# 파일 업로드를 위한 엔드포인트
@app.post("/upload/")
async def upload_file(file: UploadFile = File(...)):
    with open(file.filename, "wb") as buffer:
        shutil.copyfileobj(file.file, buffer)
    return {"filename": file.filename}

# 업로드된 파일 다운로드를 위한 엔드포인트
@app.get("/download/{file_name}")
async def download_file(file_name: str):
    return FileResponse(file_name)

위 코드에서는 FastAPI를 사용하여 /upload/ 엔드포인트를 통해 파일을 업로드하고, /download/{file_name} 엔드포인트를 통해 업로드된 파일을 다운로드하는 기능을 구현하였습니다.

서버 실행

이제 코드를 실행하여 FastAPI 서버를 실행합니다.

uvicorn main:app --reload

서버를 실행한 후 웹 브라우저나 API 클라이언트를 통해 파일을 업로드하고 다운로드할 수 있습니다.

이렇게 FastAPI를 사용하여 파일 업로드 및 다운로드 기능을 쉽게 구현할 수 있습니다. FastAPI의 강력한 기능을 활용하여 다양한 웹 API를 개발해보세요!