S3 경로에 있는 파일을 다운로드하기 위해서는 boto3 라이브러리를 사용할 수 있습니다.
특정 폴더에 있는 모든 파일을 다운로드하기 위해서는 list_objects_v2 메서드를 사용하여 해당 폴더의 파일 목록을 가져온 후, 각 파일에 대해 download_file 메서드를 호출하면 됩니다. 아래는 이를 수행하는 예시 코드입니다:
import boto3
# AWS 계정 자격 증명 설정
session = boto3.Session(
aws_access_key_id='YOUR_ACCESS_KEY',
aws_secret_access_key='YOUR_SECRET_KEY',
)
# S3 클라이언트 생성
s3_client = session.client('s3')
# 다운로드할 폴더 정보 설정
bucket_name = 'your-bucket-name'
folder_prefix = 'path/to/folder/' # 다운로드할 폴더 경로 (prefix)
# 폴더 내 파일 목록 가져오기
response = s3_client.list_objects_v2(Bucket=bucket_name, Prefix=folder_prefix)
files = response['Contents']
# 파일 다운로드
for file in files:
key = file['Key']
local_file_path = '/path/to/save/' + key.replace(folder_prefix, '') # 로컬에 저장될 파일 경로
s3_client.download_file(bucket_name, key, local_file_path)
위 코드에서 YOUR_ACCESS_KEY와 YOUR_SECRET_KEY를 자신의 AWS 액세스 키와 시크릿 키로 대체하고, your-bucket-name, path/to/folder/ 등을 각각 해당하는 S3 버킷 이름과 다운로드할 폴더 경로(prefix)로 변경해야 합니다.
S3 클라이언트의 list_objects_v2 메서드를 사용하여 지정된 폴더 내의 모든 파일 목록을 가져옵니다. 그런 다음 반복문을 사용하여 각 파일에 대해 download_file 메서드를 호출하여 로컬 시스템으로 다운로드합니다. 이렇게 하면 지정된 폴더에 있는 모든 파일이 로컬 시스템으로 다운로드됩니다.