FastAPI에서 업로드된 파일의 크기를 확인하려면 UploadFile 클래스를 사용하고, 이를 통해 content_length 속성을 확인할 수 있습니다. 다음은 파일 크기를 확인하고 500MB를 초과하는지 여부를 검사하는 코드의 예시입니다.
from fastapi import FastAPI, UploadFile, HTTPException
app = FastAPI()
@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
# 최대 허용 파일 크기 (500MB)
max_file_size = 500 * 1024 * 1024 # 500MB
# 파일 크기 확인
if file.content_length > max_file_size:
raise HTTPException(status_code=413, detail="File size exceeds the limit of 500MB")
# 여기에서 파일을 처리하거나 저장하는 로직을 추가할 수 있습니다.
# 예: file.filename을 사용하여 파일 이름을 얻고, file.file을 사용하여 파일 내용을 처리
return {"filename": file.filename}
이 코드에서 file.content_length는 업로드된 파일의 크기를 나타냅니다. 이 값이 max_file_size보다 크면 HTTPException이 발생하고, 클라이언트에게 "File size exceeds the limit of 500MB"라는 메시지가 반환됩니다.
이렇게 파일 크기를 제한하면 클라이언트가 정의된 제한을 초과하는 파일을 업로드할 때 서버가 적절하게 응답할 수 있습니다.