[python] python-dotenv를 사용하여 AWS S3 연동 설정하기

AWS S3는 많은 개발자들이 클라우드 기반의 파일 스토리지 솔루션으로 사용하고 있습니다. AWS S3와의 연동을 위해서는 인증 정보와 설정 값을 제공해야 합니다. 이를 보다 효율적으로 관리하기 위해서 python-dotenv 라이브러리를 사용해보겠습니다. dotenv는 .env 파일에 설정 값을 저장하고 읽어와서 환경 변수로 사용할 수 있게 해주는 도구입니다.

1. python-dotenv 설치

먼저, python-dotenv를 설치해야 합니다. 아래 명령어를 사용하여 설치할 수 있습니다.

pip install python-dotenv

2. S3 설정 파일 생성

프로젝트 루트 디렉토리에 .env 파일을 생성합니다. 이 파일에는 AWS S3에 연동하기 위한 설정 값을 저장할 것입니다.

AWS_ACCESS_KEY=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_access_key
AWS_BUCKET_NAME=your_bucket_name

각각의 값을 자신의 AWS 계정 설정에 맞게 변경해주세요.

3. Python 코드에서 연동 설정하기

이제, 위에서 생성한 .env 파일을 사용하여 Python 코드에서 AWS S3에 연동 설정을 할 수 있습니다. 아래 코드를 참고하세요.

import os
from dotenv import load_dotenv
import boto3

# .env 파일 로드
load_dotenv()

# .env 파일에서 설정 값 읽어오기
access_key = os.getenv('AWS_ACCESS_KEY')
secret_access_key = os.getenv('AWS_SECRET_ACCESS_KEY')
bucket_name = os.getenv('AWS_BUCKET_NAME')

# S3 연동 설정
s3 = boto3.client(
    's3',
    aws_access_key_id=access_key,
    aws_secret_access_key=secret_access_key
)

# S3 버킷에 파일 업로드
s3.upload_file('local_file.txt', bucket_name, 'remote_file.txt')

# S3 버킷에서 파일 다운로드
s3.download_file(bucket_name, 'remote_file.txt', 'local_file.txt')

위 코드에서는 boto3 라이브러리를 사용하여 S3 클라이언트 객체를 생성하고, .env 파일에서 읽어온 값으로 연동 설정을 하고 있습니다. 이후에는 로컬 파일을 S3 버킷에 업로드하거나 S3 버킷에서 파일을 다운로드할 수 있습니다.

4. 결론

python-dotenv 라이브러리를 사용하여 AWS S3 연동 설정을 보다 간편하게 관리할 수 있습니다. .env 파일을 사용하여 인증 정보와 설정 값을 저장하고 Python 코드에서 이를 활용할 수 있습니다. 이를 통해 프로젝트의 보안과 유연성을 향상시킬 수 있습니다.

참고 링크: