Flask-RESTful은 Python 웹 프레임워크인 Flask의 확장 모듈로, RESTful API를 쉽게 개발할 수 있는 기능을 제공합니다. 이번 포스트에서는 Flask-RESTful을 사용하여 크기 제한된 파일 업로드를 구현하는 방법에 대해 알아보겠습니다.
1. Flask-RESTful 설치하기
먼저 Flask-RESTful을 설치해야 합니다. 아래 명령을 사용하여 Flask-RESTful을 설치할 수 있습니다.
pip install Flask-RESTful
2. 파일 업로드 기능 구현하기
Flask-RESTful을 사용하여 파일 업로드 기능을 구현하려면 먼저 Flask-RESTful의 Resource
클래스를 상속받는 클래스를 생성해야 합니다.
from flask import Flask, request
from flask_restful import Api, Resource
app = Flask(__name__)
api = Api(app)
class FileUploadResource(Resource):
def post(self):
file = request.files['file']
if file:
# 파일 처리 로직을 구현합니다.
# 예시: 파일을 디스크에 저장하거나 다른 서비스에 업로드합니다.
return {"message": "파일 업로드 성공"}
else:
return {"message": "파일이 전송되지 않았습니다."}, 400
api.add_resource(FileUploadResource, '/upload')
위 코드에서 FileUploadResource
클래스는 post
메소드를 구현하고 있습니다. 클라이언트가 POST 요청을 보내면 서버에서는 request.files
를 통해 전송된 파일을 가져올 수 있습니다. 이 후 파일 처리 로직을 구현하여 파일을 원하는 방식으로 처리할 수 있습니다. 예를 들어, 파일을 디스크에 저장하거나 다른 서비스에 업로드할 수 있습니다.
3. 파일 크기 제한 설정하기
Flask-RESTful에서는 파일 업로드의 크기 제한을 설정할 수 있습니다. 아래 예제는 10MB를 넘는 파일은 업로드를 거부하는 방법을 보여줍니다.
app.config['MAX_CONTENT_LENGTH'] = 10 * 1024 * 1024 # 10MB
위 코드를 Flask 애플리케이션 생성 부분에 추가하면, 클라이언트가 10MB를 넘는 파일을 업로드하려고 하면 서버에서 업로드를 거부하게 됩니다.
마무리
이제 Flask-RESTful을 사용하여 크기 제한된 파일 업로드를 구현하는 방법을 알아보았습니다. Flask-RESTful은 간단하고 강력한 도구이므로 RESTful API 개발을 위해 많이 사용되고 있습니다. 문서링크에서 더 자세한 정보를 확인할 수 있습니다.