업무에서 파이썬을 사용할 일이 생겨서 처음으로 사용해봤다!!
s3에 파일을 업로드해야 하는 부분이 있어서 찾아보니
파이썬에서는 boto3
라는 라이브러리를 사용하여 접근하면 된다고 한다.
로컬에서 작업하기 위해선 awscli 설치후 credentials 를 작성해야 연결 가능하다!!
awscli를 설치하지 않고 boto3를 이용할수 있는 방법도 있었는데 이 방식이 더 코드가 간결해 보였다.
pip install awscli
[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_KEY
위 두가지 값 작성할 것!
pip install boto3
pip install python-dotenv
import os
from dotenv import load_dotenv
import boto3
import json
load_dotenv()
os.environ.get('AWS_BUCKET')
에서 AWS_BUCKET
를 얻어오기 위함 AWS_BUCKET=버킷이름
s3_client = boto3.client('s3')
f = BytesIO()
s3_client.download_fileobj(os.environ.get('AWS_BUCKET'), "file_path", f)
print(json.loads(f.getvalue())) # json dumps 예시를 위해
try:
s3_client.put_object(Bucket=os.environ.get('AWS_BUCKET'), Key="file_path", Body=body, ACL='public-read')
return True
except:
return False
Bucket
: s3 bucket nameKey
: file pathBody
: 업로드할 데이터ACL
: 인증방식, 위 예시는 public 처리 위에는 핵심코드만 올렸지만 실제로는 헬퍼 함수를 만들어서 접근하였다 : )