[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를 개발해보세요!