[python] Flask-RESTful에서 클라우드 스토리지(예: Amazon S3) 사용 방법

Flask-RESTful은 Python 웹 프레임워크인 Flask를 기반으로한 확장판입니다. 이는 RESTful API를 쉽게 개발할 수 있도록 도와주는 도구입니다. 이번 포스트에서는 Flask-RESTful에서 클라우드 스토리지인 Amazon S3를 사용하는 방법에 대해 알아보겠습니다.

Amazon S3 사용하기 위한 설정

먼저, Amazon Web Services (AWS) 계정을 생성하고 S3 스토리지 서비스를 사용할 준비를 해야합니다. 그런 다음, AWS CLI를 설치하고 구성해야합니다. 여기서는 AWS CLI에 대한 설명은 생략하겠습니다.

Amazon S3를 사용하기 위해 Flask-RESTful에 multipart file 업로드 기능을 추가해야합니다. 이를 위해 boto3 라이브러리를 사용할 것입니다. 해당 라이브러리를 설치해줍니다.

pip install boto3

Flask-RESTful에서 Amazon S3 사용하기

Flask-RESTful에서 Amazon S3를 사용하는 방법은 다음과 같습니다:

  1. 필요한 패키지를 가져옵니다:
from flask import Flask, request
from flask_restful import Resource, Api
import boto3
  1. Flask 애플리케이션을 생성하고 AWS S3와 연결합니다:
app = Flask(__name__)
api = Api(app)

s3 = boto3.client('s3')
bucket_name = 'your-bucket-name'
  1. 업로드를 처리하는 RESTful 엔드포인트를 생성합니다.
class Upload(Resource):
    def post(self):
        file = request.files['file']
        if file:
            s3.upload_fileobj(file, bucket_name, file.filename)
            return {'message': 'Upload successful'}, 200
        else:
            return {'message': 'No file received'}, 400

api.add_resource(Upload, '/upload')
  1. Flask 애플리케이션을 실행합니다:
if __name__ == '__main__':
    app.run(debug=True)

이제 Flask 애플리케이션을 실행하고 “/upload” 엔드포인트로 파일을 업로드하면 해당 파일이 Amazon S3 버킷에 저장됩니다.

마무리

이번 포스트에서는 Flask-RESTful에서 클라우드 스토리지인 Amazon S3를 사용하는 방법에 대해 알아보았습니다. Amazon S3는 파일 저장 및 관리를 위한 매우 유용한 서비스이며, Flask-RESTful을 사용하여 파일을 업로드하도록 구성할 수 있습니다. 이를 통해 우리는 간단하게 클라우드 스토리지를 사용하여 파일 업로드 기능을 추가할 수 있습니다.

참고: AWS Boto3 Documentation