728x90
boto3 library 가 없으면 우선
pip3 install boto3 명령어로 설치해주자.
또한 AWS 콘솔에서 ACCESS_KEY 와 SECRET_ACCESS_KEY 발급이 필요하다 !!
다음으로 S3 버킷 연결을 위한 connection을 생성하는 과정이다 client() 함수로 연결을 생성한다.
import boto3
def s3_connection():
try:
s3 = boto3.client(
service_name="s3",
region_name="ap-northeast-2",
aws_access_key_id=AWS_ACCESS_KEY,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY
)
except Exception as e:
print(e)
else:
print("S3 bucket connected!")
return s3
S3 버킷과의 연결을 담당하는 객체 s3 를 통해, upload_file() 을 할 수 있다.
def s3_upload_object(filepath, access_key):
s3 = s3_connection()
try:
s3.upload_file(
Filename=filepath,
Bucket=S3_BUCKET,
Key=access_key,
ExtraArgs={"ContentType":"application/json"} # parquet
)
except Exception as e:
print("error:", e)
return False
return True
# s3_upload_object(S3_BUCKET, "test.parquet", "test/test.parquet")
# Filename = File path to upload -> 업로드할 파일 경로
# Bucket = Name of the bucket to upload the file
# Key = Name of the key upload to S3 -> S3에서 파일 경로
주의할 점은 여기서 Filename은 현재 내가 업로드하고 싶은 파일의 local directory 이고, Key는 S3 버킷에 올리게 될 key 값 , 즉 S3에서의 경로를 적어주면 된다.
728x90
'Cloud Engineering > AWS' 카테고리의 다른 글
[AWS] AWS VPC Subnet CIDR에서 예약된 IP 주소 5가지 (0) | 2023.08.20 |
---|---|
AWS Kendra 란? (0) | 2023.08.16 |
[AWS] DMS로 MySQL DB (RDS) 에서 S3 Bucket으로 Migration 하기 (0) | 2023.05.25 |
[AWS] EC2 와 S3 Bucket 를 PrivateLink 로 연결하기 (0) | 2023.05.25 |
AWS Private Link 생성하는 방법 (VPC Endpoint) (0) | 2023.05.17 |