Python으로 시작하는 AWS Boto
Maksim Pecherskiy
Data Engineer
df = pd.read_csv('https://gid-staging.potholes.csv')

파일 다운로드
s3.download_file(
Filename='potholes_local.csv',
Bucket='gid-staging',
Key='2019/potholes_private.csv')
디스크에서 읽기
pd.read_csv('./potholes_local.csv')
'.get_object()' 사용
obj = s3.get_object(Bucket='gid-requests', Key='2019/potholes.csv')
print(obj)

객체 가져오기
obj = s3.get_object(
Bucket='gid-requests',
Key='2019/potholes.csv')
StreamingBody를 Pandas로 읽기
pd.read_csv(obj['Body'])
예시
https://?AWSAccessKeyId=12345&Signature=rBmnrwutb6VkJ9hE8Uub%2BBYA9mY%3D&Expires=1557624801
파일 업로드
s3.upload_file(
Filename='./potholes.csv',
Key='potholes.csv',
Bucket='gid-requests')
사전 서명 URL 생성
share_url = s3.generate_presigned_url(
ClientMethod='get_object',
ExpiresIn=3600,
Params={'Bucket': 'gid-requests','Key': 'potholes.csv'}
)
Pandas에서 열기
pd.read_csv(share_url)
# DataFrame을 담을 리스트 생성 df_list = []# 접두사로 S3에서 csv 목록 요청; 내용 가져오기 response = s3.list_objects( Bucket='gid-requests', Prefix='2019/')# 응답 내용 가져오기 request_files = response['Contents']
# 각 객체 순회 for file in request_files: obj = s3.get_object(Bucket='gid-requests', Key=file['Key'])# DataFrame으로 읽기 obj_df = pd.read_csv(obj['Body'])# 리스트에 DataFrame 추가 df_list.append(obj_df)
# 리스트의 모든 DataFrame 연결 df = pd.concat(df_list)# DataFrame 미리보기 df.head()

다운로드 후 열기
s3.download_file()
바로 열기
s3.get_object()
사전 서명 URL 생성
s3.generate_presigned_url()
.format()으로 생성
'https://{bucket}.{key}'
.get_presigned_url()로 생성
'https://?AWSAccessKeyId=12345&Signature=rBmnrwutb6VkJ9hE8Uub%2BBYA9mY%3D&Expires=1557624801'
Python으로 시작하는 AWS Boto